[32]バイトのsha256.Sum256()の出力を[]バイトと比較したいと思います。
「タイプ[32]バイトと[]バイトが一致していません」というエラーが表示されます。 []バイトを[32]バイトに変換できません。
これを行う方法はありますか?
配列([size] T)をスライス([] T)に簡単に変換するには、次のようにします。
_x := [32]byte{}
slice := x[:] // shorthand for x[0:len(x)]
_
そこから、他の2つのスライスを比較するのと同じように、スライスと比較できます。
_func Equal(slice1, slice2 []byte) bool {
if len(slice1) != len(slice2) {
return false
}
for i := range slice1 {
if slice1[i] != slice2[i] {
return false
}
}
return true
}
_
編集:デイブがコメントで言及しているように、Equal
パッケージにはbytes
メソッド、bytes.Equal(x[:], y[:])
もあります。