Heim >Backend-Entwicklung >Golang >Wie konvertiere ich eine beliebige Go-Schnittstelle in ein Byte-Array?
Das Erstellen einer Hash-Funktion, die jeden Datentyp akzeptiert, erfordert die Fähigkeit zur Konvertierung die Daten in ein Byte-Array. Das Binärpaket scheint jedoch Kenntnisse über den Datentyp und die Bytereihenfolge zu erfordern, was eine einfache Konvertierung schwierig macht.
Der Fehler lag im ursprünglichen Ansatz. Das gob-Paket ist in der Lage, diese Konvertierung effektiv durchzuführen.
Der folgende Code zeigt, wie eine beliebige Schnittstelle{} in ein Byte-Array konvertiert wird:
package bloom import ( "encoding/gob" "bytes" ) // GetBytes converts an interface{} to a byte array. func GetBytes(key interface{}) ([]byte, error) { var buf bytes.Buffer enc := gob.NewEncoder(&buf) err := enc.Encode(key) if err != nil { return nil, err } return buf.Bytes(), nil }
Diese Funktion verwendet das gob-Paket, um die Eingabeschnittstelle in ein Byte-Array zu kodieren. Anschließend wird das resultierende Byte-Array zusammen mit allen während der Codierung aufgetretenen Fehlern zurückgegeben.
Das obige ist der detaillierte Inhalt vonWie konvertiere ich eine beliebige Go-Schnittstelle in ein Byte-Array?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!