-
type分三类
- 预声明标识类型,基本就是boolean,numeric and string
- 复合类型,如:map slice arry struct interface pointer function channel 这些使用(type字面量)构造的类型
-
自声明类型,分两种:
var Age int // 类型定义 var Int = int // 类型别名
-
类型定义,type: 一人千面
- 创建了一个完全新的类型,与其所基于的类型是两个不同的类型。
- 不继承底层类型的方法,但会继承底层类型的元素(如果是interface类型,那么其方法集也会保留下来,在我看interface的方法集实际上类似于字段)
- 类型别名,类型别名是给某个类型起的别名,该别名本质上依然是该类型。
-
-
底层类型,每一个type都有其底层类型,1和2类的底层类型都是其本身,3的底层类型视情况而定。
type ( A1 = string A2 = A1 ) type ( B1 string B2 B1 B3 []B1 B4 B3 )A1,A2,B1,B2的底层类型都是string,B3,B4的底层类型都是[]B1
-
接口类型(interface type),推荐看 Go接口深入解析
interface {}type ReadWriter interface { Read(b Buffer) int Write(b Buffer) int } type File interface { ReadWriter Close() } -
结构体类型,结构体是命名元素的序列,我们称这些命名元素为字段,每个字段都有名字(name)和类型(type)。非空字段的名字必须唯一,字段可以显式或者隐式(一个字段只有type而没有名字)的指定。
- 隐式字段称为嵌入字段。嵌入字段要么是个类型,要么是个非接口类型的指针类型。
typt T struct { name string } type T1 struct { value int // 正常字段 int // 嵌入字段:int类型 *T // 嵌入字段:指向类型T的指针类型 }- 如果一个 type T1 被嵌入另一个 type T 作为它的 filed,T1 的所有 field 和 method 都可以在 T 中使用
- 空结构体 ,重要的是其内存消耗等于0。
参考
以上所述就是小编给大家介绍的《go中的type》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
大数据技术原理与应用
林子雨 / 人民邮电出版社 / 2015-8-1 / 45.00
大数据作为继云计算、物联网之后IT行业又一颠覆性的技术,备受关注。大数据处不在,包括金融、汽车、零售、餐饮、电信、能源、政务、医疗、体育、娱乐等在内的社会各行各业,都融入了大数据的印迹,大数据对人类的社会生产和生活必将产生重大而深远的影响。 大数据时代的到来,迫切需要高校及时建立大数据技术课程体系,为社会培养和输送一大批具备大数据专业素养的高级人才,满足社会对大数据人才日益旺盛的需求。本书定......一起来看看 《大数据技术原理与应用》 这本书的介绍吧!