1、接口定义
Go 语言不是一种 “传统” 的面向对象编程语言:它里面没有类和继承的概念。
但是 Go 语言里有非常灵活的 接口 概念,通过它可以实现很多面向对象的特性。接口提供了一种方式来 说明 对象的行为:如果谁能搞定这件事,它就可以用在这儿。
接口定义了一组方法(方法集),但是这些方法不包含(实现)代码:它们没有被实现(它们是抽象的)。接口里也不能包含变量。
通过如下格式定义接口:
type Namer interface {
Method1(param_list) return_type
Method2(param_list) return_type
...
}
上面的Namer是一个接口类型。
(按照约定,只包含一个方法的)接口的名字由方法名加 [e]r 后缀组成,例如Printer、Reader、Writer、Logger、Converter 等等。还有一些不常用的方式(当后缀 er 不合适时),比如Recoverable,此时接口名以 able 结尾,或者以 I 开头(像 .NET 或 Java 中那样)。
Go 语言
本文详细介绍了Go语言中的接口和反射机制。接口是一种定义行为的方式,通过接口可以实现多态。反射则允许程序在运行时检查和修改自身。文章涵盖了接口定义、内嵌接口、动态类型、类型判断、测试接口实现等多个方面,并通过示例代码展示了如何使用反射进行类型检查和方法调用。此外,文中还探讨了空接口、反射包以及接口在实现多态中的应用。
订阅专栏 解锁全文
925

被折叠的 条评论
为什么被折叠?



