教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 golang学习之结构体,方法,接口

golang学习之结构体,方法,接口

发布时间:2022-02-15   编辑:jiaochengji.com
教程集为您提供golang学习之结构体,方法,接口等资源,欢迎您收藏本站,我们将为您提供最新的golang学习之结构体,方法,接口资源
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"><path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"/></svg>

1.结构体
在golang里,没有类的概念,但是如果非要实现像类那样的例子,那或许就是结构体了,结构体是一系列变量的集合,
定义

<pre><code>type s_name struct { v_name1 v_type1 v_name2 v_type2 } </code></pre>

声明结构体类型的变量

<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里,方法就是带有接收者的函数,何为接收者,即是任意类型(结构体,指针,接口等)的实例。函数跟类型绑定,即成了方法
定义

<pre><code>type Person struct { name string age int } //此处Person类型的person是sayHello方法的接收者,以后person可以调用此方法。 func (person Person) sayHello { fmt.Println("hello,goodmorning") } person.sayHello() //结构体在定义的时候,并没有定义方法,但是通过上面的操作,就好像是该方法是结构体自己定义的一样。有点反客为主的意思。 </code></pre>

把图内文字换一下就是
方法:你有方法嘛?结构体
结构体:没有
func (s Struct) Func {}
方法:那从现在起,你已经有了

当然方法不只是能绑定在结构体上,还能有很多类型。

3.接口
duck typing:假如,我认为黄色的,长的像鸭子的动物都算是鸭子,那么以后,只要是黄色的,长的像鸭子的东西,无论有没有生命,大小如何,他在我的范畴里都是鸭子。
duck typing 描述事物的外部行为而非内部结构,为多态的一种形式。是从使用者的角度来看的。如果我认为长得像鸭子的东西是鸭子,那么任何长的像鸭子的事物在我眼中就是鸭子

接口是一组方法签名的集合,体现的是泛型的思想。
接口是隐式实现的,只要实现了接口里的方法,就相当于实现了接口,即只要长的像鸭子,那么就是鸭子。

<pre><code>type if_name interface{ method1() method2() } type S1 struct {} func (s1 S1) method1() {} func (s1 S1) method2() {} </code></pre>

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接口使用说明与经典案例

[关闭]
~ ~