Heim > Backend-Entwicklung > Golang > Wie konvertiere ich eine beliebige Go-Schnittstelle in ein Byte-Array?

Wie konvertiere ich eine beliebige Go-Schnittstelle in ein Byte-Array?

Barbara Streisand
Freigeben: 2024-11-09 17:46:02
Original
869 Leute haben es durchsucht

How to Convert an Arbitrary Go Interface to a Byte Array?

So konvertieren Sie eine beliebige Go-Schnittstelle in ein Byte-Array

Hintergrund

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.

Lösung mit Gob

Der Fehler lag im ursprünglichen Ansatz. Das gob-Paket ist in der Lage, diese Konvertierung effektiv durchzuführen.

Implementierung

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
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage