您好,登录后才能下订单哦!
本篇内容主要讲解“GO语言的类型有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“GO语言的类型有哪些”吧!
1、值的类型给编译器提供两部分信息:一是,需要分配多少内存给这个值(即值的规模);二是这段内存表示什么。
2、用户自定义类型有两种方法。一是使用关键字 struct ,来创建一个结构类型;二是基于一个已有的类型,将其作为新类型的类型说明。
1)
type admin struct { person user level String }
2)
type Duration int64
3、创建变量方法有三。一是用关键字 var 创建一个变量并初始化为其零值;二是配合结构字面量({ }),三是配合短变量声明操作符(:=)来创建非零变量。
4、方法:实际上是函数,声明时在关键字 func 和方法名之间加一个参数(接收者)。
1)接受者分为值接收者和指针接收者
2)(*lisa).notify() 这里的指针变量 lisa 被解引为值。因为 notify方法的接收者为值类型。方法的值接收者操作的是一个副本。
3)值接收者使用值的副本来调用方法,而指针接受者使用实际值来调用方法
4)(&bill).changeEmail ("bill@newdomain.com") (&bill) 引用值的指针,changeEmail 方法接收者为指针类型。
5、类型的本质
类型的本质是什么。如果给这个类型增加或删除某个值,是要创建一个新值,还是要更改当前的值?如果是要创建一个新值,该类型的方法就使用值接收者。如果是要修改当前值,就使用指针接收者。
1)内置类型
本质上是原始类型由语言提供,包括:数值型、字符串型和布尔型。基本数据值。
2)引用类型
切片、映射、通道、接口和函数类型。当声明上述类型的变量时,创建的变量被称作标头(header)值。引用类型的值在其他方面像原始的数据类型的值一样对待
3)结构类型
用于描述一组数据值。继续找资料,不是很理解。
6、接口
1)多态是指代码可以根据类型的具体实现采取不同行为的能力。
2)“接口”是用来定义行为的类型。这些被定义的行为不由接口直接实现,而是通过方法由用户定义的类型实现。用户定义的类型通常叫实体类型。
3)满足接口的实现,对用户自定义类型的值的要求:
4)用户定义的类型值是如何存入接口的。分为两种情况,实体值赋值给接口、实体指针赋值给接口。
5)方法集:定义了接口的接受的规则。方法集定义了一组关联到给定类型的值或者指针的方法。
6)编译器并不是总能自动获得一个值的地址,所以值的方法集只包括了使用值接收者实现的方法。
7)结构类型type x struct { }、 type x interface 接口类型、type x inter64 基于已有类型创建新类型。
7、嵌入类型
通过嵌入类型,与内部类型相关的标识符会提升到外部类型上。外部类型也可以通过声明与内部类型标识符同名的标识符来覆盖内部标识符的字段或者方法。这就是扩展或者修改已有类型的方法。
8、公开或未公开的标识符
1)当一个标识符的名字以小写字母开头时,这个标识符就是未公开的,即包外的代码不可见。如果一个标识符以大写字母开头,这个标识符就是公开的,即被包外的代码可见。
2)当要写的代码属于某个包时,好的实践是使用与代码所在文件夹一样的名字作为包名。所有的 Go 工具都会利用这个习惯,所以最好遵守这个好的实践。
3)将工厂函数命名为 New 是 Go 语言的一个习惯。
4)未公开的类型不能直接访问。未公开的内嵌类型不能直接访问,如未公开的内嵌类型中有公开的字段,这些公开的字段可以提升的父级类型,因此可以通过公开的父级类型访问内嵌类中的公开的字段。
到此,相信大家对“GO语言的类型有哪些”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。