go-interface
要点
interface是一组method的集合(而不是function, 因为function没有reciver)若某个类型实现了
interface内所有method,则该类型对象与该interface对象转换interface是一种语义上的抽象,该对象提供了某种语义抽象功能,而该功能的具体实现不同如
coder(编码器),存在编码,解码功能,但具体可能有json,xml等多种方式实现赋值给
interface若为值,则该类型
method的reciver也必须是值类型若为指针值,则该类型
method的reciver也必须是指针类型
因为
method的reciver是否为指针,代表的语义功能可能完全不一样reciver为指针类型,意味着在该method中,很可能会改变该对象自身(具体由实现决定)若一个
method要求的是指针类型,而在给interface赋值时,只是传值的话,是无法改变该对象的!