String-Arrays als Byte-Arrays in Go kodieren und dekodieren
So kodieren Sie ein String-Array ([]string) in ein Byte-Array ([ ]Byte) für die Festplattenspeicherung besteht eine optimale Lösung darin, ein Serialisierungsformat in Betracht zu ziehen. Verschiedene Formate bieten unterschiedliche Funktionen und Effizienzkompromisse, darunter:
Gob:
Gob ist ein Binärformat, das für Go-Code geeignet ist. Es ist platzsparend für große String-Arrays:
enc := gob.NewEncoder(file) enc.Encode(data)
Zur Dekodierung:
var data []string dec := gob.NewDecoder(file) dec.Decode(&data)
JSON:
JSON ist ein weit verbreitetes Format . Es ist leicht kodierbar und dekodierbar:
enc := json.NewEncoder(file) enc.Encode(data)
Zur Dekodierung:
var data []string dec := json.NewDecoder(file) dec.Decode(&data)
XML:
XML hat im Vergleich zu Gob und JSON einen höheren Overhead . Es erfordert Root- und String-Wrapping-Tags:
type Strings struct { S []string } enc := xml.NewEncoder(file) enc.Encode(Strings{data})
Zur Dekodierung:
var x Strings dec := xml.NewDecoder(file) dec.Decode(&x) data := x.S
CSV:
CSV verarbeitet nur String-Werte. Es können mehrere Zeilen oder mehrere Datensätze verwendet werden. Im folgenden Beispiel werden mehrere Datensätze verwendet:
enc := csv.NewWriter(file) for _, v := range data { enc.Write([]string{v}) } enc.Flush()
Für die Dekodierung:
var data string dec := csv.NewReader(file) for err == nil { s, err := dec.Read() if len(s) > 0 { data = append(data, s[0]) } }
Überlegungen zur Leistung:
Die optimale Wahl des Formats hängt von ab die spezifischen Anforderungen. Wenn Platzeffizienz Priorität hat, sind Gob und JSON gute Optionen. XML hat einen höheren Overhead, unterstützt aber komplexe Datenstrukturen. CSV eignet sich am besten für einfache String-Arrays.
Für benutzerdefinierte Codierung kann das Paket „encoding/binary“ verwendet werden, es erfordert jedoch einen höheren Implementierungsaufwand.
Das obige ist der detaillierte Inhalt vonWie kann man String-Arrays in Go effizient als Byte-Arrays kodieren und dekodieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!