Heim >Backend-Entwicklung >Golang >Wie konvertiert man in Go Strukturen in Byte-Arrays und umgekehrt?

Wie konvertiert man in Go Strukturen in Byte-Arrays und umgekehrt?

DDD
DDDOriginal
2024-10-27 22:02:02737Durchsuche

 How to Convert Structs to Byte Arrays and Vice Versa in Go?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn