Maison > développement back-end > Golang > Comment convertir une interface Go arbitraire en un tableau d'octets ?

Comment convertir une interface Go arbitraire en un tableau d'octets ?

Barbara Streisand
Libérer: 2024-11-09 17:46:02
original
905 Les gens l'ont consulté

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

Comment convertir une interface Go arbitraire en un tableau d'octets

Contexte

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.

Solution utilisant Gob

L'erreur résidait dans l'approche initiale. Le package gob est capable de gérer cette conversion efficacement.

Implémentation

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
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal