使用后我们需要清除一些变量。但是当它[]byte在结构中分配一个字段时,它看起来真的很奇怪。
为什么这个赋值[]byte不是副本而是指针?
我应该怎么做才能将值保留在 struct 中a.bs,但清除bas 局部变量? http://play.golang.org/p/MT_wAHj2OM
package main
import "fmt"
type so struct {
bs []byte
}
func zeroes(n int) []byte {
return make([]byte, n)
}
func wipeBytes(b []byte) {
copy(b, zeroes(len(b)))
}
func main() {
a := so{bs: []byte{0x01, 0x02}}
b := a.bs
wipeBytes(b)
fmt.Println(b) //b == []byte{}
fmt.Println(a.bs) //a.bs == []byte{}
}
人到中年有点甜
浮云间
相关分类