La création d'une fonction de hachage qui accepte tout type de données nécessite la possibilité de convertir les données dans un tableau d'octets. Cependant, le package binaire semble exiger la connaissance du type de données et de l'ordre des octets, ce qui rend une simple conversion difficile.
L'erreur résidait dans l'approche initiale. Le package gob est capable de gérer cette conversion efficacement.
Le code suivant montre comment convertir une interface arbitraire{} en un tableau d'octets :
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 }
Cette fonction utilise le package gob pour coder l'interface d'entrée dans un tableau d'octets. Il renvoie ensuite le tableau d'octets résultant ainsi que toutes les erreurs rencontrées lors du codage.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!