Go 语言浅尝之方法

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

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

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

查看所有标签

猜你喜欢:

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

Cracking the Coding Interview

Cracking the Coding Interview

Gayle Laakmann McDowell / CareerCup / 2015-7-1 / USD 39.95

Cracking the Coding Interview, 6th Edition is here to help you through this process, teaching you what you need to know and enabling you to perform at your very best. I've coached and interviewed hund......一起来看看 《Cracking the Coding Interview》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

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

Markdown 在线编辑器

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具