Go笔记4:接口
什么是接口(interface)
Golang中的interface是一组method的组合,我们通过interface来定义对象的一组行为。如果某个对象实现了某个接口的所有方法,则此对象就实现了此接口。
比如:
1 | // 定义interface |
在上面的例子中对象Human实现了接口Men中的所有方法,所以Human可以被看作一个Men类型的对象,照此类推:一个接口可以被多个不同的对象思想,同理,一个对象也可以实现多个接口。
interface变量的值
一个interface的变量,可以存实现这个interface的任意类型的对象。
空interface
空interface(interface{}
)不包含任何的method,所以所有的类型都默认实现了空interface。空interface在我们需要存储任意类型的数值的时候相当有用,因为它可以存储任意类型的数值。它有点类似于java语言的Object对象。
1 | var a interface{} // 定义a为空接口 |
一个函数把interface{}作为参数,那么他可以接受任意类型的值作为参数,如果一个函数返回interface{},那么也就可以返回任意类型的值。
嵌入interface
和struct中的匿名字段类似:如果一个interface1作为interface2的一个嵌入字段,那么interface2隐式的包含了 interface1 里面的method。
比如:io包下面的 io.ReadWriter ,他包含了io包下面的Reader和Writer两个interface。
1 | type ReadWriter interface { |
参考资料
- 标题: Go笔记4:接口
- 作者: zjun
- 创建于 : 2013-12-30 21:06:19
- 更新于 : 2023-11-30 15:27:36
- 链接: https://zjun.site/2013/12/745ed4880698.html
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论