为了账号安全,请及时绑定邮箱和手机立即绑定

Go 方法集 — 使用接收器 T 调用指针类型 *T 的方法

Go 方法集 — 使用接收器 T 调用指针类型 *T 的方法

Go
桃花长相依 2021-07-02 07:19:09
Go规范说:任何其他类型 T 的方法集由接收者类型为 T 的所有方法组成。 对应指针类型 *T 的方法集是所有接收者为 *T 或 T 的方法的集合(也就是说,它还包含吨)。我的理解是:T 有自己的方法集,而 *T 有自己的方法集加上 T 的方法集,因为它可以将接收者 *T 解引用到 T 并调用方法。因此,我们可以使用变量类型 T 的接收者 *T 调用一些方法。所以我决定验证我的逻辑:package mainimport (  "fmt"  "reflect")type User struct{}func (self *User) SayWat() {  fmt.Println(self)  fmt.Println(reflect.TypeOf(self))  fmt.Println("WAT\n")}func main() {  var user User = User{}  fmt.Println(reflect.TypeOf(user), "\n")  user.SayWat()}http://play.golang.org/p/xMKuLzUbIf我有点困惑。看起来我可以在 T 上调用“of *T”的方法?我有一个更广泛的例子http://play.golang.org/p/RROPMj534A,这也让我感到困惑。是否有一些反之亦然的类型推断?我是否遗漏了什么,或者我的逻辑不正确?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 180 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信