为什么不能这样写不是取地址么,地址还不同
func TestSingle(t *testing.T) {
var wg sync.WaitGroup
for i := 0; i < 10; i++ {
wg.Add(1)
go func() {
obj := GetSingleObj()
//fmt.Printf("%x\n", unsafe.Pointer(obj))
fmt.Println(&obj)
wg.Done()
}()
}
wg.Wait()
}
=== RUN TestSingle
create obj
0xc0000b2000
0xc000006040
0xc000006048
0xc000006050
0xc000006058
0xc000006060
0xc000006068
0xc000006080
0xc000006070
0xc000006078
--- PASS: TestSingle (0.00s)
PASS
展开
作者回复: 其实obj已经是一个指针变量了,你可以看看GetSingleObj的返回值定义,所以&obj就不对了,变成了指向指针的指针。