golang学习之结构体,方法,接口
1.结构体
在golang里,没有类的概念,但是如果非要实现像类那样的例子,那或许就是结构体了,结构体是一系列变量的集合,
定义
声明结构体类型的变量
<pre><code>var name = s_name{v_value1, v_value2} //或者 var name = s_name{v_name1: v_value1, v_name2: v_value2} </code></pre>可是这跟类比,还少类方法啊,的确,不过golang也能给结构体加上方法。
2.方法
golang里,方法就是带有接收者的函数,何为接收者,即是任意类型(结构体,指针,接口等)的实例。函数跟类型绑定,即成了方法
定义
把图内文字换一下就是
方法:你有方法嘛?结构体
结构体:没有
func (s Struct) Func {}
方法:那从现在起,你已经有了
当然方法不只是能绑定在结构体上,还能有很多类型。
3.接口
duck typing:假如,我认为黄色的,长的像鸭子的动物都算是鸭子,那么以后,只要是黄色的,长的像鸭子的东西,无论有没有生命,大小如何,他在我的范畴里都是鸭子。
duck typing 描述事物的外部行为而非内部结构,为多态的一种形式。是从使用者的角度来看的。如果我认为长得像鸭子的东西是鸭子,那么任何长的像鸭子的事物在我眼中就是鸭子
接口是一组方法签名的集合,体现的是泛型的思想。
接口是隐式实现的,只要实现了接口里的方法,就相当于实现了接口,即只要长的像鸭子,那么就是鸭子。
s1实现了method1(),method2()方法,那么也就意味着S1实现了if_name这个接口,那么以后if_name就可以视为S1类型,反之亦然,如果多个类型都实现了两个方法,那么多个类型都可视为if_name类型,那么if_name就可以当做很多类型使用,这也许能称之为泛型吧。那么定义这样一个接口类型的数组,即可以装下各种实现了接口所有方法 的不同类型了。
到此这篇关于“golang学习之结构体,方法,接口”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!您可能感兴趣的文章:
golang学习之结构体,方法,接口
go语言学习笔记(十三)——接口类型
GoLang学习笔记(三十四)接口及空接口
Go学习--interface(接口)
go struct 成员变量后面再加个字符串是什么意思?_Go语言的学习笔记(第十章) 接口...
学习golang开始前的准备工作
浅谈golang中的接口
golang 结构体断言_Golang的面向对象编程【结构体、方法、继承、接口】-Go语言中文社区...
Go学习笔记:接口实现与指针
golang接口使用说明与经典案例