有一个函数可以将指针设置为nil
值:
func nilSetter(x *int) {
x = nil
}
我有这样的代码片段:
i := 42
fmt.Println(&i)
nilSetter(&i)
fmt.Println(&i)
这将输出:
0xc42008a000
0xc42008a000
我期望:
0xc42008a000
nil
我知道这是因为函数nilSetter
只是复制地址并将该副本设置为nil。
但是我应该如何正确地做呢?
fmt.Println(&x)
而不是fmt.Println(&xp)
。 - Kenenbek Arzymatov&x
的值。 - Chris Redford