Go 语言浅尝之方法

栏目: IT技术 · 发布时间: 1周前

来源: mp.weixin.qq.com

本文转载自:https://mp.weixin.qq.com/s/-_rsnHUQpR7Xm3VKHjGGcg,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有。

Go 语言浅尝之方法

Hello,各位小伙伴大家好,我是小栈君,因为疫情的缘故,所以今年过了一个非同寻常的年,在这里小栈君也是衷心的希望大家清洗手,多通风,出门记得戴口罩,人多别去凑热闹。

安全卫生从你我做起,最重要的是即使呆在家里办公也别忘了学习哦~

Go 语言浅尝之方法

今天我们继续 go 语言系列分享之方法,对于方法的介绍,相信做过编程的小伙伴或多或少都有了解。

概念

在golang中的方法是作用在特定类型的变量上,因此自定义类型都是可以有方法的,不仅仅只有一个struct 结构体。

方法和函数的区别

但是这里方法和我们之前介绍的函数有什么区别呢?

大致小栈君为大家讲解一下,在函数中并没有对象的概念,因此我们对面向对象的函数叫做方法,但是他们本质上都是function,只是函数并不属于任何一个对象,因此只要符合条件的参数都是可以调用函数。

但是并不适用于方法。 因为方法仅限于某一个对象,在后面小栈君会给大家进行实例举例说明。

格式

针对于Go语言中的方法的格式如下:

func (receive  type) methodName(args ) (返回参数){}

Go 语言浅尝之方法

就拿我们之前讲过的一个例子而言,我们定义的一个car 和一个smallCar 结构体,其中SmallCar继承了Car的属性,理所应当的也继承了相应的方法。

但是小伙伴请注意,我们在定义方法的时候限定了Car,也就是说这一个Run方法除了Car和继承Car的子类,其他对象是无法使用的。如果强行使用编译器会直接报错,具体例子如图所示:

Go 语言浅尝之方法

特别注意的一点是,在Go语言中依旧要区分值传递和引用传递,如下图所示:

Go 语言浅尝之方法

也就是说在方法中也是区分了这个差别,如果稍微不注意,对于新手的小伙伴来讲很有可能会导致排查半天的问题而不得解。

同样的是方法也是遵循大小写的区别,小写的作用域只限于当前的文件中,对于其他外部需要调用的方法我们统一会进行首字母大写处理。这也算是Go语言的一个规范,小栈君也是多次说过这个问题,希望小伙伴注意一下这个问题。

继承

同样类似于结构体中的继承,方法也是同样可以继承的,就如上图所示,我们的SmallCar继承了Car的相关属性,同样SmallCar也同样拥有Car所特有的方法。

Go 语言浅尝之方法

组合和匿名字段

如果一个struct嵌套了另一个匿名结构体,那么这个结构体可以直接访问匿名结构体的方法从而实现继承,如果一个结构体嵌套了多个匿名结构体。

那么这个结构体可以直接访问多个匿名结构体的方法,从而实现多重继承,当然在真实的项目当中并不推荐多重继承。

如果发现问题这会导致代码的排查复杂性和代码的可读性变差。

好了,今天的分享就到这里,我们下期再见,如果你喜欢我的分享,可以进行转发,点赞或是分享给身边的朋友。武汉加油,中国加油~ 我是小栈君,我们下期再见,拜了个拜。

这里不定期会分享包含java,go,Python,大数据,人工智能的相关干货,我们一起提高,一起进步。我是小栈君,我们明天再见,拜了个拜。

Go 语言浅尝之方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

关注码农网公众号

关注我们,获取更多IT资讯^_^


为你推荐:

相关软件推荐:

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Go语言实战

Go语言实战

威廉·肯尼迪 (William Kennedy)、布赖恩·克特森 (Brian Ketelsen)、埃里克·圣马丁 (Erik St.Martin) / 李兆海 / 人民邮电出版社 / 2017-3-1 / CNY 59.00

Go语言结合了底层系统语言的能力以及现代语言的高级特性,旨在降低构建简单、可靠、高效软件的门槛。本书向读者提供一个专注、全面且符合语言习惯的视角。Go语言实战同时关注语言的规范和实现,涉及的内容包括语法、类型系统、并发、管道、测试,以及其他一些主题。一起来看看 《Go语言实战》 这本书的介绍吧!

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具