interface
接口就是定义了0个或多个方法的集合,它是两个事物对接的一个规范。实现了这个接口,就符合了这个规范。接口中只能声明方法,不能定义字段,也不能实现方法。这一点与java的interface还不太一样,在java的interface中,可以定义常量字段,而golang的interface中只能有方法。下边来看看定义一个接口的语法:
type Message interface{
Read() string
Write(str string)
}
上边的示例中,定义了一个名为Message的接口,接口中有两个方法,分别是Read和Write。Read方法返回一个string类型值,而Write方法接收一个string类型的参数。定义接口的语法非常简单。
接口实现与赋值
接口实现,就是某一个类型拥有这个接口全部声明的方法。
golang中任何类型,都可以去实现某一个或多个接口。以int类型为原型,定义一个新的类型myInt。让myInt类型来实现接口msg。示例代码如下:
package main
import (
"fmt"
)
// 定义接口,接口名称是msg,接口中有一个方法
type msg interface {
write(v string)
}
// 根据int定义一个新的类型myInt
type myInt int
// 给myInt类型添加方法
func (r myInt) write(v string) {
fmt.Println(v)
}
func main() {