Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Mensiri dan Menyahsiri Struktur Kompleks dengan Cekap dalam Go?

Bagaimanakah Saya Boleh Mensiri dan Menyahsiri Struktur Kompleks dengan Cekap dalam Go?

DDD
Lepaskan: 2024-11-30 12:38:12
asal
406 orang telah melayarinya

How Can I Efficiently Serialize and Deserialize Complex Structs in Go?

Mensiri dan Menyahseri Struktur Kompleks dalam Go

Apabila bekerja dengan struktur data yang kompleks dalam Go, menjadi penting untuk mensirikannya untuk penyimpanan dan komunikasi yang cekap. Ini melibatkan pengekodan struct ke dalam rentetan untuk kegigihan dan kemudiannya menyahsirinya untuk memulihkan data asal.

Menggunakan Gob dan Base64

Salah satu pendekatan paling berkesan untuk mensiri struct Go ialah menggunakan gob dan pakej base64. Begini cara ia berfungsi:

import (
    "bytes"
    "encoding/base64"
    "encoding/gob"
    "fmt"
)

type SX map[string]interface{}

// go binary encoder
func ToGOB64(m SX) string {
    b := bytes.Buffer{}
    e := gob.NewEncoder(&b)
    err := e.Encode(m)
    if err != nil {
        fmt.Println("failed gob Encode", err)
    }
    return base64.StdEncoding.EncodeToString(b.Bytes())
}

// go binary decoder
func FromGOB64(str string) SX {
    m := SX{}
    by, err := base64.StdEncoding.DecodeString(str)
    if err != nil {
        fmt.Println("failed base64 Decode", err)
    }
    b := bytes.Buffer{}
    b.Write(by)
    d := gob.NewDecoder(&b)
    err = d.Decode(&m)
    if err != nil {
        fmt.Println("failed gob Decode", err)
    }
    return m
}
Salin selepas log masuk

Pensirian Struktur Tersuai

Untuk mensiri struct atau jenis tersuai, seperti struct Sesi, cuma tambahkan baris berikut pada kod:

func init() {
    gob.Register(SX{})
    gob.Register(Session{}) // Register your custom struct
}
Salin selepas log masuk

Pilihan Serialisasi Tambahan

Selain gob, terdapat alternatif format bersiri tersedia dalam Go (sehingga 2020). Untuk pensirilan struktur dinamik, anda mungkin mempertimbangkan untuk merujuk penanda aras 2022 untuk panduan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mensiri dan Menyahsiri Struktur Kompleks dengan Cekap dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan