我在中找到了以下代码crypto/sha256/sha256.go:
func putUint32(x []byte, s uint32) {
_ = x[3]
x[0] = byte(s >> 24)
x[1] = byte(s >> 16)
x[2] = byte(s >> 8)
x[3] = byte(s)
}
len(x)我所看到的是,如果不是至少 4,对空白标识符的这种分配会造成恐慌,这甚至不是分配的影响,而是对 的评估的影响x[3]。那么,下面的(更短、更理想的代码)不是等效的吗?
func putUint32(x []byte, s uint32) {
x[3] = byte(s)
x[2] = byte(s >> 8)
x[1] = byte(s >> 16)
x[0] = byte(s >> 24)
}
如果是的话,为什么不这样写呢?
忽然笑
相关分类