文章目录
struct的方法集
当类型调用自己申明的方法的时候,不需要考虑方法集。
接口的方法集
(1)若一个interface{} person有两个方法,talk方法和eat方法;
(2)当一个struct user 使用值接受者(user)定义了talk方法,使用指针接受者(*user)定义了eat方法
那么就有:
*user 实现了该接口
user没有实现该接口
个人理解
(1)首先看*user类型,*user作为接受者定义了eat方法;
对于talk方法,是user作为接受者定义的,
若*user类型的变量使用此方法,会通过地址找到值;
所以说*user类型实现了该接口。
(2)接着看user类型,user类型作为接受者定义了talk方法;
对于eat方法,是*user作为接受者定义的,
若user类型的变量使用此方法,go官方说 “不一定可以取得地址”;
所以说user类型没有实现该接口。