Go-Konvertierung zwischen Struktur und Byte-Array
F: Wie kann ich in Go eine C-ähnliche Typumwandlung zwischen Strukturen und Byte-Arrays durchführen? Wie kann ich beispielsweise einen empfangenen Netzwerk-Byte-Stream direkt einer Struktur zuordnen?
A: Das Encoding/Binary-Paket bietet eine bequemere und sicherere Alternative zu unsafe.Pointer:
<code class="go">// Create a struct and write it. type T struct { A uint32 B float64 } t := T{A: 0xEEFFEEFF, B: 3.14} buf := &bytes.Buffer{} err := binary.Write(buf, binary.BigEndian, t) if err != nil { panic(err) } fmt.Println(buf.Bytes()) // Read into an empty struct. t = T{} err = binary.Read(buf, binary.BigEndian, &t) if err != nil { panic(err) } fmt.Printf("%x %f", t.A, t.B)</code>
Durch die Verwendung des Binärpakets können Sie einfacher und sicherer und präziser zwischen Strukturen und Byte-Arrays konvertieren und dabei Größen und Endianness automatisch verarbeiten.
Das obige ist der detaillierte Inhalt vonWie konvertiert man in Go Strukturen in Byte-Arrays und umgekehrt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!