更新:根据实际开发理解接口
给一个服务端的场景吧:有不同的服务器组成的后端,登录注册服,gateway服,处理逻辑的服务器,他们都需要在链接前启动,向一个统一的服务器发现的服务器注册自己(以便宕机改变消息的转发路径),那么他们的run()方法可以定义在一个接口中,实现用同一份启动代码,实现不同服的初始化。
接口定义了对象的行为
这是很多资料对接口的定义,对于接口而言,很难通过概念对它有个清晰的了解,那就通过实践来理解一下,对于一个项目,init函数肯定并不陌生,项目中需要初始化的有很多,以下代码用数组,切片,map表来代替要初始化的资源↓↓↓↓↓
type _array struct{}
type _slice struct{}
type _map struct{}
func (a _array) init() { fmt.Println("array init") }
func (s _slice) init() { fmt.Println("slice init") }
func (m _map) init() { fmt.Println("map init") }
对于没有接口的面向过程而言,在需要初始化的时候,就需要显示调用↓↓↓↓↓
func main(){
var a _array
a.init()
var s _slice
s.init()
var m _map
m.init()
}