gpt4 book ai didi

go - 如何比较 [32]byte 和 []byte?

转载 作者:IT老高 更新时间:2023-10-28 13:07:02 28 4
gpt4 key购买 nike

我想比较 sha256.Sum256() 的输出,即 [32]byte[]byte

我收到错误“[32]byte 和 []byte 类型不匹配”。我无法将 []byte 转换为 [32]byte

有没有办法做到这一点?

最佳答案

您可以通过 slice 轻松地将任何数组 ([size]T) 转换为 slice ([]T):

x := [32]byte{}
slice := x[:] // shorthand for x[0:len(x)]

您可以从那里将其与您的 slice 进行比较,就像比较任何其他两个 slice 一样,例如

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 在评论中提到的,bytes 包中还有一个 Equal 方法,bytes.Equal(x[:], y[ :])

关于go - 如何比较 [32]byte 和 []byte?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27762562/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com