我想将sha256()的输出[32]字节与[]字节进行比较.
我收到一个错误"不匹配的类型[32]字节和[]字节".我无法将[]字节转换为[32]字节.
有什么办法可以做到这一点吗?
我想将sha256()的输出[32]字节与[]字节进行比较.
我收到一个错误"不匹配的类型[32]字节和[]字节".我无法将[]字节转换为[32]字节.
有什么办法可以做到这一点吗?
您可以通过切片将任何数组([Size]T)简单地转换为切片([]T):
x := [32]byte{}
slice := x[:] // shorthand for x[0:len(x)]
从那里你可以把它和你的切片进行比较,就像你比较其他两个切片一样.
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
}
编辑:正如Dave在 comments 中提到的,bytes
包中还有一个Equal
方法,bytes.Equal(x[:], y[:])