欢迎光临散文网 会员登陆 & 注册

GO 接口类型 interface{} 小记

2023-08-03 18:25 作者:核火心缘  | 我要投稿

go 接口 应该包含两个内容

一个是使用该接口的对象,一个是接口本身的定义

新手按照这个顺序去理解

1.概念:接口是多个对象类型(含接口本身)共同商议出来的一个仅包含标准化可调用的方法名的集合体(结构体)(本身是个指针对象属于引用类型,关键字interface{}

所以即可以先通过对象已有的方法去设计接口,也可以先设计好接口再由对象去实现对应的方法体

3.这些参与商议(或者后续新来)的对象如果要实现(使用)这个接口,则必须实现这个接口包含的所有方法名对应的函数体(含返回值类型)

4.定义一个属于自己的接口类

使用type xxx interface{                //(go里面type类似于其他语言的class

a()[...type]                                      //...type指定该动作返回的数据类型

b()[...type]

c()[...type]

...

}

 得到一个名为xxx的接口类,通常是为引用或者继承做准备


5.直接声明一个自定义接口的实例

使用var yyy interface{ //或者直接 var yyy xxx

a()[...type] //...type指定该动作返回的数据类型

b()[...type]

c()[...type]

...

}

得到一个名为yyy的接口实例,也是最终要用的


1,在载入满足该接口规范的对象(类型)之前,不能直接使用该接口的动作名(否则报错)


3.一个对象(类型)如果实现了一个接口中所有动作名对应的动方法,就称该对象(类型)满足该接口的规范,可以使用该接口


4.不包含动作名的接口称为空接口,可以接受任意类型的对象,但同样的无法调用该对象的方法

5,接口的的继承

可以通过type b interface{

xxx //上面定义的xxx接口类,这里注意,不能用yyy,因为它是实例,不是类

d()[...type] //...type指定该动作返回的数据类型

e()[...type]

f()[...type]]

...


}

来引用或者继承已有的接口

6.不同名的接口实例或接口类允许有同样的方法名,但是在同一个接口实例或者接口类内禁止有相同的方法名 尤其是在引用或者继承这些操作里


GO 接口类型 interface{} 小记的评论 (共 条)

分享到微博请遵守国家法律