package main
import "fmt"
type Data struct {
x int
}
func (self *Data) PointerTest() {
fmt.Printf("Pointer: %p\n", self)
}
func main() {
d := Data{x: 6}
d.PointerTest()//这句可以执行
//Data{x:6}.PointerTest() //这句报错
}
d.PointerTest()可以执行,,而 Data{x:6}.PointerTest()报错,这是什么情况
有疑问加站长微信联系(非本文作者))

d
可寻址,Data{x:6}
不可以。确实是,因为是字面量,字面量是没地址的
字面量也有地址的。试试这个: (&Data{x: 6}).PointerTest()
因为&优先级低,所以加括号。