理解go语言中的接口
Go语言中的接口是一种抽象类型,它定义了一组方法的集合。接口定义了一个对象所必须具备的方法,但并不关心这些方法的具体实现。因此,通过接口可以实现不同类型之间的通用性。
接口的定义格式如下:
type 接口名 interface { 方法名1(参数列表1) 返回值列表1 方法名2(参数列表2) 返回值列表2 ... }
接口名可以是任何合法的标识符,方法名和参数列表、返回值列表与普通函数的定义相同。
接口的实现是隐式的,只要一个类型实现了一个接口中定义的所有方法,那么该类型就实现了该接口。就可以将该类型的值赋给该接口类型的变量。
如下示例:
type MyInterface interface { M() } type T struct {} func (t T) M() {} func main() { var i MyInterface = T{} i.M() }
在上面的例子中,T实现了MyInterface中定义的M()方法,因此可以将T类型的值赋给MyInterface类型的变量i,并且可以调用i的M()方法。
Go语言基础及实战 文章被收录于专栏
Go语言学习笔记、语法知识、技术要点和个人理解及实战