go 接口
时间: 2023-08-07 07:02:53 浏览: 39
Go语言中的接口是一种类型,它定义了一组方法的集合。实现了这些方法的任何类型都可以被称为这个接口的实现类型。接口可以被用于声明变量、函数参数或返回值的类型,也可以被用于判断一个具体类型是否实现了某个接口。
在Go语言中,接口的定义格式如下:
```
type 接口名 interface {
方法名1(参数列表1) 返回值列表1
方法名2(参数列表2) 返回值列表2
// ...
}
```
其中,接口名表示接口的名称,方法名、参数列表和返回值列表则表示接口定义的方法。一个类型只有实现了接口中定义的所有方法,才能被称为这个接口的实现类型。
例如,下面定义了一个简单的接口:
```
type Animal interface {
Speak() string
}
```
表示Animal接口包含一个Speak方法,返回值类型为string。任何实现了Speak方法的类型都可以被称为Animal接口的实现类型。
```
type Cat struct {}
func (c Cat) Speak() string {
return "Meow"
}
```
上面的代码定义了一个Cat类型,实现了Animal接口中的Speak方法。这样就可以将Cat类型的变量赋值给Animal类型的变量了,例如:
```
var a Animal
a = Cat{}
fmt.Println(a.Speak()) // 输出 "Meow"
```
这里,a变量的类型为Animal接口,实际上保存的是Cat类型的值。调用a的Speak方法时,会调用Cat类型中实现的Speak方法,返回"Meow"字符串。