关于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...》,为了简洁的编程哲学致敬
- 关于go语言的学习经历2:2017-1-8
- 关于go语言学习的经历1:2017-1-8
- 关于go语言的学习经历3: 赋值事宜 2017-1-12
- 关于go语言的学习和使用
- Go语言的学习
- go语言学习 1-初识go语言
- go语言学习2
- 关于nginx源码的分析和go语言学习
- 我的Go语言本地安装经历 - msi安装法
- Go语言学习笔记1/2
- 学习Go语言,关于流程控制
- go语言学习记录8
- Go语言学习笔记8
- go语言学习记录2
- Go语言学习笔记2
- go 语言学习记录1
- Go语言学习笔记1
- 学习go语言(1)
- 关于如何用程序实现重启路由器!!!!!
- 求android studio 下载地址,最好有中文的
- 为什么要做手机网站?wap,xml,wml,http,html
- 静态成员变量和静态成员函数
- A - Kill the monster (DFS)
- 关于go语言的学习经历2:2017-1-8
- Faster-RCNN训练时遇到的问题
- 手机默认录制视频生成mp4文件,现在准备上传到服务器,网上有什么好的开源压缩框架吗?不压缩文件太大
- python3的算法库安装
- 文章标题
- 提交进行判断并提示
- mlpy库-----降维模块(学习笔记)
- 数据库的字符串字段,被嵌入恶意代码,这是怎么回事呀?
- 【dashboard】horizon启用ssl