Go语言规范里定义的方法集的规则
Values Methods Receivers
-----------------------------------------------
T (t T)
*T (t T) and (t *T)
T类型的值的方法集只包含值接收者声明的方法。而指向T类型的指针的方法集既包含值接收者声明的方法,也包含指针接收者声明的方法。
从接收者类型的角度来看方法集
Methods Receivers Values
-----------------------------------------------
(t T) T and *T
(t *T) *T
如果使用指针接收者来实现一个接口,那么只有指向那个类型的指针才能够实现对应的接口。如果使用值接收者来实现一个接口,那么那个类型的值和指针都能够实现对应的接口。
原文:https://www.cnblogs.com/c-x-a/p/11356213.html