go语言的类型和接口的之间是一对多(或多对一)的关系
以下为概念实例生产理解,便于以后在复杂的类型与接口环境中使用
一,一个类型可以实现多个接口 而接口间彼此独立,不知道对方的实现。
type HandlerInterface interface {
OnRequset()
IsRequestOk() bool
}
type Test2 struct{//...
}
type Test struct{
ID int //普通结构
start()string //接口函数
HandlerInterface //接口函数
Test2 //结构嵌套
}
func NewTest()*Test{//...
return &Test{}
}
func(t *Test)OnRequset{//...
}
func(t *Test)IsRequestOk{//...
}
二,一个接口可以有多个结构实现
一个接口的方法,不一定需要由一个类型完全实现,
接口的方法可以通过在类型中嵌入其他类型或者结构体来实现。
也就是说,使用者并不关心某个接口的方法是通过一个类型完全实现的,
还是通过多个结构嵌入到一个结构体中拼凑起来共同实现的。
//老司机开车 这个接口函数可不是一个结构体完成的
type Car interface {
Start() // 开启
close()string // 关闭
}
// 熄火
type Close struct {//...
}
// 实现Car 的close()方法
func (c *Close) close()string {//...
}
// 人为
type People struct {
Close // 嵌入日志器
}
// 实现Car的Start()方法
func (p *People) Start() {//...
}
本文探讨了Go语言中类型与接口之间的关系,包括一个类型如何实现多个接口,以及一个接口如何被多个类型实现。通过具体示例,阐述了接口的实现机制,以及如何通过类型嵌入实现接口。


被折叠的 条评论
为什么被折叠?



