关于go语言的学习经历2:2017-1-8

来源:互联网 发布:单片机最小系统数据 编辑:程序博客网 时间:2024/05/16 11:10

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...》,为了简洁的编程哲学致敬

0 0
原创粉丝点击