golang方法集

方法集:定义了一组关联到给定类型的值或者指针的方法。定义方法时使用的接收者的类型决定了这个方法时关联到值,还是关联到指针,还是两个都关联。

规范里描述的方法集

Values                     Methods Receivers
----------------------------------------------
   T                               (t T)
  *T                               (t T)  and  (t *T) 

T类型的值的方法集只包含值接收者声明的方法。而指向T类型的指针的方法集既 包含值接收者声明的方法,也包含指针接收者声明的方法。

接收者类型的角度来看方法集

Methods Receviers                Values
------------------------------------------
      (t T)                              T and *T
      (t *T)                             *T

换成了接收者的视角:如果使用指针接收者来实现一个接口,那么只有指向那个类型的指针才能够实现对应的接口。如果使用值接收者来实现一个接口,那么那个类型的值和指针都能够实现对应的接口。

 

参考:https://blog.csdn.net/qihoo_tech/article/details/104707905

posted @ 2020-05-28 16:04  顽强的allin  阅读(615)  评论(0编辑  收藏  举报