您不能调用
*Ton 的方法
T,但是编译器足够聪明,可以为您获取变量的引用,从而有效地调用
(&user).SayWat()
这在这里解释:
调用:如果x的方法集包含m并且参数列表可以分配给m的参数列表,则方法调用xm()有效。如果x是可寻址的并且&x的方法集包含m,则xm()是(&x).m()的简写。
要了解差异,例如,您可以采用一个返回值(不可寻址):
func aUser() User { return User{}}...aUser().SayWat()失败并出现错误:
prog.go:40: cannot call pointer method on aUser()prog.go:40: cannot take the address of aUser()
http://play.golang.org/p/HOTKiiOK7S



