Go 语言浅尝之方法

栏目: IT技术 · 发布时间: 4年前

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 语言浅尝之方法

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

查看所有标签

猜你喜欢:

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

C陷阱与缺陷

C陷阱与缺陷

凯尼格 / 高巍 / 人民邮电出版社 / 2008-2-1 / 30.00元

作者以自己1985年在Bell实验室时发表的一篇论文为基础,结合自己的工作经验扩展成为这本对C程序员具有珍贵价值的经典著作。写作本书的出发点不是要批判C语言,而是要帮助C程序员绕过编程过程中的陷阱和障碍。.. 全书分为8章,分别从词法分析、语法语义、连接、库函数、预处理器、可移植性缺陷等几个方面分析了C编程中可能遇到的问题。最后,作者用一章的篇幅给出了若干具有实用价值的建议。.. 本书......一起来看看 《C陷阱与缺陷》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具