Pensirilan dan Penyahserilan yang Cekap dalam Go
Golang menyediakan pelbagai pendekatan untuk mensiri dan menyahsiri struct menjadi rentetan. Apabila bekerja dengan struktur kompleks seperti struct Sesi, menggunakan pendekatan yang memastikan kesetiaan data sambil mengekalkan prestasi adalah penting.
Menggunakan GOB dan Base64
Satu kaedah yang berkesan ialah dengan gunakan pengekod GOB dan pengekodan base64. Begini cara anda boleh mencapai ini:
import ( "encoding/base64" "encoding/gob" "bytes" ) // Custom type for serialization type Session struct { Properties map[string]interface{} Permissions []int64 } // GOB encoder func ToGOB64(m Session) string { b := bytes.Buffer{} e := gob.NewEncoder(&b) err := e.Encode(m) if err != nil { panic(err) } return base64.StdEncoding.EncodeToString(b.Bytes()) } // GOB decoder func FromGOB64(str string) Session { m := Session{} by, err := base64.StdEncoding.DecodeString(str) if err != nil { panic(err) } b := bytes.Buffer{} b.Write(by) d := gob.NewDecoder(&b) err = d.Decode(&m) if err != nil { panic(err) } return m }
Untuk menyokong jenis tersuai (dalam kes ini, Sesi), anda boleh mendaftarkannya dengan pengekod GOB:
func init() { gob.Register(Session{}) }
Lain-lain Format Siri
Jika GOB tidak sesuai, terdapat format siri alternatif tersedia dalam Go, seperti JSON, XML dan protobuf. Setiap format menawarkan kelebihan dan pertukaran yang berbeza.
Prestasi
Prestasi penyirian dan penyahsirian sebahagian besarnya bergantung pada saiz data dan format yang dipilih. GOB cenderung untuk menjadi agak pantas, manakala JSON dan XML boleh menjadi lebih perlahan tetapi lebih boleh dibaca oleh manusia. Menanda aras format berbeza boleh membantu menentukan pilihan terbaik untuk aplikasi khusus anda.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mensiri dan Menyahserikan Struktur dengan Cekap dalam Go Menggunakan GOB dan Base64?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!