建立接受任何資料類型的雜湊函數需要能夠轉換資料到字節數組。然而,二進位套件似乎需要了解資料的類型和位元組順序,這使得簡單的轉換變得具有挑戰性。
錯誤出現在最初的方法中。 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中文網其他相關文章!