Rumah >pembangunan bahagian belakang >Golang >Pensirilan objek dan penyahsirilan dalam bahasa Go

Pensirilan objek dan penyahsirilan dalam bahasa Go

WBOY
WBOYasal
2023-06-03 08:31:511426semak imbas

Dengan aplikasi teknologi pelayan teragih, fungsi pensirilan objek dan penyahserikatan telah menjadi lebih biasa dalam kerja pengaturcara. Bahasa Go juga menyediakan pelbagai cara untuk melaksanakan pensirilan objek dan penyahsirilan, dan senario penggunaan kaedah ini juga berbeza. Artikel ini akan memperkenalkan secara terperinci pelaksanaan pensirilan objek dan penyahsirilan dalam bahasa Go dan cara menggunakannya.

1. Apakah pensirilan objek dan penyahserilan?

Penyirian dan penyahserikan objek merujuk kepada menukar struktur data objek kepada bentuk yang boleh disimpan atau boleh dipindahkan untuk memudahkan operasi seterusnya. Proses bersiri adalah untuk menukarkan objek kepada aliran bait, yang boleh disimpan atau dihantar melalui rangkaian Proses penyahsiran adalah untuk menukar aliran bait kepada objek semula.

2. Kaedah pensirilan dan penyahserikan objek dalam bahasa Go

  1. gob

gob ialah pakej yang disediakan oleh bahasa Go Digunakan untuk melaksanakan pensirilan objek dan penyahserikatan. Kelebihannya ialah ia mempunyai kecekapan tinggi, dan format bersirinya sangat sesuai untuk jenis data bahasa Go. Walau bagaimanapun, kerana kaedah penghuraiannya tidak cukup fleksibel, ia akan menjadi sukar untuk dikembangkan.

Cara menggunakan kaedah siri gob:

(1) Cipta struktur untuk disiri:

type Student struct {
    Name string
    Age  int
    Sex  int
}

(2) Serialkan objek struktur:

var stu Student
var buf bytes.Buffer
enc := gob.NewEncoder(&buf)
err = enc.Encode(stu)
if err != nil {
    log.Fatal("encode error:", err)
}

(3) Tukar strim bait bersiri kepada objek struktur:

dec := gob.NewDecoder(bytes.NewReader(buf.Bytes()))
err = dec.Decode(&stu)
if err != nil {
    log.Fatal("decode error:", err)
}
  1. JSON

JSON ialah format pertukaran data Tahap ringan, biasanya digunakan untuk bahagian hadapan dan pemindahan data hujung belakang di Web. Sokongan untuk format JSON juga disediakan dalam bahasa Go. Berbanding dengan gob, format JSON lebih fleksibel dan lebih sesuai untuk penghantaran data merentas bahasa. Walau bagaimanapun, memandangkan kaedah penghuraian JSON memerlukan sokongan penghurai tambahan, kecekapan mungkin lebih rendah sedikit daripada gob apabila menghuraikan struktur data yang lebih besar.

Cara menggunakan pensirilan JSON:

(1) Cipta struktur untuk disiri:

type Student struct {
    Name string `json:"name"`
    Age  int    `json:"age"`
    Sex  int    `json:"sex"`
}

(2) Serialkan objek struktur:

var stu Student
buf, err := json.Marshal(stu)
if err != nil {
    log.Fatal("marshal error:", err)
}

(3) Tukarkan strim bait bersiri kepada objek struktur:

var stu Student
err = json.Unmarshal(buf, &stu)
if err != nil {
    log.Fatal("unmarshal error:", err)
}

3 Aplikasi pensirilan objek dan penyahsirian

Jurutan objek Pensirilan dan penyahserikan boleh digunakan pada senario yang berbeza, seperti: <.>

    Penyimpanan data
Apabila menyimpan data ke cakera atau pangkalan data, data boleh menjadi Serialisasi untuk menjimatkan ruang storan dan meningkatkan kecekapan membaca dan menulis.

    Transmisi rangkaian
Semasa penghantaran rangkaian, data boleh bersiri dan kemudian strim bait bersiri dihantar ke penerima Kemudian nyahsiri strim bait bersiri untuk mendapatkan data asal dan melengkapkan penghantaran data.

    Pertukaran data
Apabila memindahkan data antara aplikasi yang berbeza, memandangkan format data dan jenis data mungkin berbeza, data boleh disirikan menjadi format yang konsisten, dinyahsiri pada pihak penerima untuk mencapai pertukaran data.

4. Ringkasan

Bahasa Go menyediakan pelbagai cara untuk melaksanakan pensirilan objek dan penyahsirilan, yang setiap satunya mempunyai kelebihan dan kekurangan tersendiri dalam senario yang berbeza. Dalam penggunaan sebenar, kaedah yang sesuai harus dipilih mengikut situasi sebenar untuk meningkatkan kecekapan dan kebolehgunaan semula program.

Atas ialah kandungan terperinci Pensirilan objek dan penyahsirilan dalam bahasa Go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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