对Go的接口赋值的理解
来源:互联网 发布:淘宝如何开通微淘 编辑:程序博客网 时间:2024/05/19 20:46
开始。
//"Go语言编程"的"3.5.3 接口赋值"相关内容package main//Go的函数不存在重载,所以不可以有重名函数,否则会报错[method redeclared]//Go可以根据"类型"的函数,自动生成"类型指针"的函数.但是无法根据"类型指针"的函数生成"类型"的函数.import ("fmt")type Integer intfunc (a Integer) Less(b Integer) bool {return a < b}/* Go可以根据"类型"的函数,自动生成"类型指针"的函数.比如根据Less函数自动生成了func (a *Integer) Less(b Integer) bool {return (*a).Less(b) //注意:这里是【(*a).Less(b)】而不是【*a < b】}其实就是"类型指针"的函数调用了"类型"的函数.下面的函数LessAuto就是自动生成的Less的具象形式.*/func (a *Integer) LessAuto(b Integer) bool {return (*a).Less(b)}func (a *Integer) Add(b Integer) {*a += b}/* Go无法根据"类型指针"的函数,生成"类型"的函数.比如Add函数就无法自动生成func (a Integer) Add(b Integer) {(&a).Add(b)}因为该函数仅仅改变了入参a的值,并没有改变这个类型的对象实例的值.你可以调用一下AddAutoFail函数,会发现,它的行为和Add函数的行为不一致.*/func (a Integer) AddAutoFail(b Integer) {(&a).Add(b)}func main() {var a Integer = 7fmt.Println("print1", a)a.AddAutoFail(1)fmt.Println("print2", "AddAutoFail", a)a.Add(1)fmt.Println("print2", "Add", a)}
结束。
阅读全文
0 0
- 对Go的接口赋值的理解
- go的一些问题,接口赋值
- 对接口的理解
- 对接口的理解
- 对接口的理解
- 对接口的理解
- 对接口的理解
- 对接口的理解
- 对接口的理解
- 对接口的理解
- go语言学习-接口赋值的两种方式
- 对指针间接赋值的理解(1)
- 对 赋值、浅/深拷贝 的理解
- 对UART接口的理解
- 对BMC接口的理解
- 目前对接口的理解
- 对java接口的理解
- 对接口的深刻理解
- js只能输入数字或者分号!
- Python High Performance Programming.pdf 英文原版 免费下载
- Natural Language Processing with Python.pdf 英文原版 免费下载
- js输出最后一个字符串
- SpringMVC传输传递 @RquestMapping @ResponseBody @PathVariable和@RequestParam
- 对Go的接口赋值的理解
- Make Your Own Python Text Adventure.pdf 英文原版 免费下载
- Java生成UUID
- 【数据结构】0.1 + 0.2 = 0.30000000000000004该怎样理解?
- 5. Longest Palindromic Substring
- spring与mybatis整合
- 使用腾讯云MTA来进行埋点
- 【Python】pip安装scrapy、mysqlclient出错的解决方法
- 2017-11-26