新人好迷惑。关于方法中的指针接收者的问题。

gostatic · · 1038 次点击
1、类型*T的可调用方法集包含接受者为*T或T的所有方法集 2、类型T的可调用方法集包含接受者为T的所有方法 3、类型T的可调用方法集不包含接受者为*T的方法 通俗的说就是,如果方法的接受者是指针(比如你这个方法),只能用指针调用,指针者是实体的话,指针和实体都能调用此方法。 我也是新手,这是我个人看的一些资料后的理解。
#1
更多评论
建议新人看看这个:https://cloud.tencent.com/developer/doc/1101 刚入门不用太着急,建议教程多看几遍,然后跟着教程一遍自己动手写写
#2
`Point{2,4}` 是一个 struct literal,一个临时数据,不是一个变量,也就是说不能获取这个量的地址(只能获取变量的地址),按理说 `&Point{2,4}` 是会出错的。但是用 struct literal 初始化一个数据然后获取它的指针是一个非常常用的操作,因此 Go 提供了这样一个语法糖:`&Point{2,4}`,相当于: ``` o := Point{2, 4} // o 是一个变量 op := &o // 获取变量的指针;正确 op.double() // 正确 ``` Go语言程序设计这本书有讲到这个。
#3