任意の Go インターフェイスをバイト配列に変換するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-09 17:46:02
オリジナル
828 人が閲覧しました

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

任意の Go インターフェイスをバイト配列に変換する方法

背景

任意のデータ型を受け入れるハッシュ関数を作成するには、変換する機能が必要ですデータをバイト配列に変換します。ただし、バイナリ パッケージではデータの型とバイト順序の知識が必要なため、単純な変換が困難になっているようです。

Gob を使用した解決策

エラーは最初のアプローチにありました。 gob パッケージは、この変換を効果的に処理できます。

実装

次のコードは、任意のインターフェースをバイト配列に変換する方法を示しています。

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
}
ログイン後にコピー

この関数は gob パッケージを利用して入力インターフェイスをバイト配列にエンコードします。次に、エンコード中に発生したエラーとともに結果のバイト配列を返します。

以上が任意の Go インターフェイスをバイト配列に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート