golang 怎么理解 struct 和 interface ?

lobo · · 2270 次点击
个人理解,struct就一种数据结构,当基本数据类型不能满足我们的需求时,可以通过定义struct来创建新的具体数据类型;而要理解interface需要知道两件事:1.它是一系列方法的集合,2.它也是一种数据类型。当某个数据类型实现了interface所包含的方法集合,interface变量也可以表示这个数据类型。
#4
更多评论
struct 封装 interface 多态
#1
struct是一个结构体,当普通的变量无法满足描述所需的东西,就会用结构体来描述,例子就是你无法用一个int或者float,或者其他基本类型,来描述一个公司,一个company,包含了多个apartment,多种人员officer,薪酬体系 salarymode,等等 interface是描述一款功能的一种规范,所以他规范的全是动词动作,比如每一款连接器,如果没有接口,就是各自的结构体, 比如USB,HIMI,音频线,结构体,然后有一个厂商发出号召,所有连接器结构体,必须实现Connect()方法,必须实现DisConnect方法,不然就不符合标准规格的连接器规范,那么这样的interface就可以描述成: type ConnectorI interface{ Connect() Disconnect() } 对一个结构体,如何才算满足了该接口规范,如果有 type USB struct{ } func(usb USB) Connect(){ } func (usb USB) Disconnect(){ } 则USB实现了ConnectorI接口
#2