golang 接口
在Go语言中,接口(Interface)是一种类型,它定义了一组方法,但不包括这些方法的具体实现。任何类型,只要它实现了接口所有必需的方法,则它就实现了该接口。
接口的定义使用关键字 interface
,下面是一个接口的定义示例:
type Reader interface {
Read(p []byte) (n int, err error)
}
在上面的代码中,Reader
接口定义了一个 Read
方法,该方法接收一个字节切片 p
作为参数,返回读取的字节数 n
和可能发生的错误信息 err
。任何实现了 Read
方法的类型都可以被看作是实现了 Reader
接口。
接口的实现示例:
type File struct {
// ...
}
func (f *File) Read(p []byte) (n int, err error) {
// ...实现读取文件的具体逻辑
}
var r Reader
f := File{}
r = &f // 因为File实现了Read方法,所以可以将File的实例赋值给Reader类型的变量r
在上面的代码中,File
结构体定义了文件的数据结构,并实现了 Read
方法。然后创建了一个 File
类型的实例 f
,并将其赋值给 Reader
类型的变量 r
,这是因为 File
实现了 Reader
接口所需的所有方法。
这就是Go语言中接口的基本使用方法。
评论已关闭