type Point struct {
x,y int
}
func main(){
p:=&Point{2,4}
p.double()//可以
(*p).double()//可以
(&Point{2,4}).double()//可以
(Point{2,4}).double()//报错
}
func (p *Point)double()int{
return p.x+p.y
}
编译报错无法获得Point类型字面量的地址。
不明白为什么手动加了&就可以了呢?我看教程上面的解释是无法获取临时变量的地址。 但&不就是取地址操作吗?为什么对Point类型字面量手动取地址就可以调用它的方法呢?
有疑问加站长微信联系(非本文作者)