Konvertierungsstrategien: []byte zu int in Go
Konvertieren von Daten aus einem Byte-Slice ([]byte) in eine ganze Zahl (int ) tritt in verschiedenen Szenarien auf, wie beispielsweise bei der Notwendigkeit, numerische Werte über TCP zu übertragen. Diese Abfrage untersucht die in Go verfügbaren Konvertierungsmethoden.
Konvertieren von []Byte in Int mithilfe von „encoding/binary“
Das Paket „encoding/binary“ bietet einen praktischen Mechanismus zum Konvertieren zwischen Bytefolgen und grundlegende Datentypen. Es unterstützt Konvertierungen für 16-, 32- und 64-Bit-Typen.
Die ByteOrder-Schnittstelle, die die Endianness der Byte-Reihenfolge (Big- oder Little-Endian) definiert, spielt bei dieser Konvertierung eine entscheidende Rolle. Der folgende Codeausschnitt zeigt, wie man mit der Funktion ByteOrder.Uint64() ein []Byte in ein uint64 umwandelt, wobei eine Big-Endian-Bytereihenfolge angenommen wird:
package main import "fmt" import "encoding/binary" func main() { var mySlice = []byte{244, 244, 244, 244, 244, 244, 244, 244} // 8-byte value represented as []byte data := binary.BigEndian.Uint64(mySlice) fmt.Println(data) // Prints: 18446744073709551615 }
In diesem Beispiel die mySlice []Byte-Instanz stellt eine 8-Byte-Ganzzahl ohne Vorzeichen dar. Die Funktion „binary.BigEndian.Uint64()“ konvertiert diese Bytefolge in ein uint64 unter Verwendung der Big-Endian-Bytereihenfolge (die angibt, dass das höchstwertige Byte zuerst in der Bytefolge erscheint).
Hinweis: Die Konvertierungsfunktion hängt vom gewünschten Datentyp ab. Zum Beispiel würde „binary.BigEndian.Uint16()“ für die Konvertierung in eine 16-Bit-Ganzzahl ohne Vorzeichen verwendet werden.
Das obige ist der detaillierte Inhalt vonWie konvertiert man in Go ein []Byte in ein Int?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!