创建接受任何数据类型的哈希函数需要能够转换数据到字节数组。然而,二进制包似乎需要了解数据的类型和字节顺序,这使得简单的转换变得具有挑战性。
错误出现在最初的方法中。 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中文网其他相关文章!