Pengekodan dan Penyahkodan Tatasusunan Rentetan sebagai Tatasusunan Byte dalam Go
Untuk mengekod tatasusunan rentetan ([]rentetan) kepada tatasusunan bait ([ ]bait) untuk storan cakera, penyelesaian optimum melibatkan mempertimbangkan format bersiri. Pelbagai format menyediakan ciri yang berbeza dan pertukaran kecekapan, termasuk:
Gob:
Gob ialah format binari yang sesuai untuk kod Go. Ia cekap ruang untuk tatasusunan rentetan besar:
enc := gob.NewEncoder(file) enc.Encode(data)
Untuk penyahkodan:
var data []string dec := gob.NewDecoder(file) dec.Decode(&data)
JSON:
JSON ialah format yang digunakan secara meluas . Ia mudah dikodkan dan diyahkodkan:
enc := json.NewEncoder(file) enc.Encode(data)
Untuk penyahkodan:
var data []string dec := json.NewDecoder(file) dec.Decode(&data)
XML:
XML mempunyai overhed yang lebih tinggi berbanding Gob dan JSON . Ia memerlukan teg pembalut akar dan rentetan:
type Strings struct { S []string } enc := xml.NewEncoder(file) enc.Encode(Strings{data})
Untuk penyahkodan:
var x Strings dec := xml.NewDecoder(file) dec.Decode(&x) data := x.S
CSV:
CSV hanya mengendalikan nilai rentetan. Ia boleh menggunakan berbilang baris atau berbilang rekod. Contoh berikut menggunakan berbilang rekod:
enc := csv.NewWriter(file) for _, v := range data { enc.Write([]string{v}) } enc.Flush()
Untuk penyahkodan:
var data string dec := csv.NewReader(file) for err == nil { s, err := dec.Read() if len(s) > 0 { data = append(data, s[0]) } }
Pertimbangan Prestasi:
Pilihan format yang optimum bergantung pada keperluan khusus. Jika kecekapan ruang menjadi keutamaan, Gob dan JSON ialah pilihan yang baik. XML mempunyai overhed yang lebih tinggi tetapi menyokong struktur data yang kompleks. CSV paling sesuai untuk tatasusunan rentetan ringkas.
Untuk pengekodan tersuai, pengekodan/pakej binari boleh digunakan, tetapi ia memerlukan usaha pelaksanaan yang lebih tinggi.
Atas ialah kandungan terperinci Bagaimana untuk Mengekod dan Menyahkod Tatasusunan Rentetan dengan Cekap sebagai Tatasusunan Byte dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!