ps:周末有时间学习,所以连记了两个笔记
关于go语言中的接口:接口赋值
go中的接口按《go语言编程》的介绍来讲,是非常重要的。
关于接口的实现,有一句概念性的话:Go语言中,一个类只需要实现了接口要求的所有函数,我们就说这个类实现了该接口 (重点)
比如有个接口(本不想用原书的例子,但是这么描述真的很简单)
type Integer int//新增了一个基于int的类型 Integer
type MyInterface interface {//这是一个接口 这是一个go语言接口 啊,这个接口就长这德行呀
Less(b Integer) Integer
Add(b intteger)
}
接下来是实现这个接口方式,根据概念而言
func (a Integer) Less(b Integer) Integer{//参数类型简介:(a Integer),代表这个方法绑定在类型 Integer上面,相当于给一个类提供了类方法;Less:方法名;b:形参名字
//做点事情。。。
}
func (a *Integer) Add(b Integer){
//做点指针该干的事情
}
重点在于是使用的过程中
func main(){//很像c的main函数呀,真的很像
var a Integer = 1
var b Integer = 2
var c MyInterface = &a//至于为什么要取a值的引用,而非a值,是为了保持实现接口中参数类型的统一,至于原因 参考《go...》你懂的这本书
c.Add(b)//这步很关键 对我这样的小白而言,差点遗忘了c这个变量值,不是一个Integer的类型,它是一个接口类型的变量
//上面这个叫 c 的接口, 干了一件事情,就是用了Add这个方法,且跟 b 这个变量发生了一些暧昧的事情,可联想 苍老师···
//c 这个接口干完了 联想苍老师的事情后,得益者,是变量 a, 因为 c用了 a 的引用地址
//soso
fmt.Println(a)
//这步你会得到一个3的值,这个实现的过程,来自接口 MyInterface
}
ps:苍老师也是一个女神···
ps:《go语言编程》是我主要的参考书籍,所以以后此书简称《go...》,为了简洁的编程哲学致敬
有疑问加站长微信联系(非本文作者)