golang中接口赋值与方法集

朱宇清 ·
@朱宇清 :+1: 谢谢你的分享,文章脉络清晰,条理分明,总结地很到位! :smiley: 我最近也在看雨痕的GO语言实战,希望你能多多分享哈! > ##### 类型T的方法集包含所有 receiver T方法。 > ##### 类型*T的方法集包含所有 receiver T + *T方法。 > ##### 匿名嵌入S,类型T的方法集包含所有 receiver T + S方法。 > ##### 匿名嵌入*S,类型T的方法集包含所有 receiver T + S + *S方法。 > ##### 匿名嵌入S或*S,类型*T的方法集包含所有 receiver T + *T + S + *S方法。 > ##### 虽然看起来比较复杂,但总结完就一话,*T类型就是厉害,方法集包括T和*T的方法。 > ##### 所以文章开头的例子中,u是user类型,方法集是空的,不算是实现了notifier接口。 > ##### 当在纠结应该将T类型还是*T类型赋值给某个接口的时候,第一步就是看方法集,看一看该类型到底有没有实现这个接口。(所以T和*T不是一个类型。。。)
#1