- 接口类型(接口是一个规范,一堆方法的集合 er结尾) 接口类型 只关心类型可以做什么,而不是储存什么值。任何类型的任何值,只要满足接口的要求,那他就是接口变量。
比如下面代码,a满足了接口,所以可以调用方法
type Animal interface{
Eat()
Run()
}
type Cat struct{
Name string
Sex string
}
type Dog struct{
Name string
}
func (c Cat)Run{
fmt.pringln()
}
func (d Dog)Run{
fmt.pringln()
}
func (c Cat)Eat{
fmt.pringln()
}
func (d Dog)Eat{
fmt.pringln()
}
func main{
var a Animal //声明一个变量 是一个接口
c:= Cat{
Name :"Tom",
Sex:false,
}
//a可以调用方法,但是没有c的内容
a = c
a.Eat()
a.Run()
}
func main{
var a Animal //声明一个变量 是一个接口
a= Cat{
Name :"Tom",
Sex:false,
}
a.Eat()
a.Run()
}
定义类型,go会判断此类型是不是满足接口,满足的话就可以调用接口里的方法
怎么用
func MyFunc(a interface{}){
fmt.Println(a)
}
func MyFunc(a Animal){
a.Eat()
a.Run()
}