小白关于接口的一个问题

YerdGu · · 876 次点击
- go语言圣经中有句话:`在T类型的参数上调用一个*T的方法是合法的,只要这个参数是一个变量;编译器隐式的获取了它的地址。但这仅仅是一个语法糖:T类型的值不拥有所有*T指针的方法,那这样它就可能只实现更少的接口。`
#2
更多评论
以值为接收者的方法被调用时,接收者既能为值又能为指针。 我之前记的这句话,但是不记得在哪本书里了 - - 所以func (ts TestS)SayHello() 在调用时候&TestS{}可以自动解析为*(&TestS{}) 也就满足了接口的定义 但是如果方法的接收者是指针的话,应该就不能自动解析了吧。所以接口赋值报错。 所以应该是为了写的时候方便,这是我自己的理解,希望能够帮到你
#1
啊哈,有点绕
#3