Go 学习笔记之 结构体
结构体是一种聚合的数据类型,是由零个或多个任意类型的值聚合成的实体。每个值称为结构体的成员。
用结构体的经典案例是处理公司的员工信息,每个员工信息包含一个唯一的员工编号、员工的名字、家庭住址、出生日期、工作岗位、薪资、上级领导等等。
下面声明了一个叫 Employee 的命名的结构体类型,并且声明了一个 Employee 类型的变量 dilbert:
复制代码
dilbert 结构体变量的成员可以通过点操作符访问:
复制代码
或者是对成员取地址,然后通过指针访问:
复制代码
默认值
结构体类型的零值是每个成员都是零值。通常会将零值作为最合理的默认值。
如果结构体没有任何成员的话就是空结构体,写作 struct{}。它的大小为 0,也不包含任何信息,但是有时候依然是有价值的。
复制代码
字面值
结构体值也可以用结构体字面值表示,结构体字面值可以指定每个成员的值。
复制代码
如果要在函数内部修改结构体成员的话,用指针传入是必须的;因为在 Go 语言中,所有的函数参数都是值拷贝传入的,函数参数将不再是函数调用时的原始变量。
复制代码
因为结构体通常通过指针处理,可以用下面的写法来创建并初始化一个结构体变量,并返回结构体的地址:
复制代码
它和下面的语句是等价的
复制代码
不过 &Point{1, 2}写法可以直接在表达式中使用,比如一个函数调用。
版权声明: 本文为 InfoQ 作者【架构精进之路】的原创文章。
原文链接:【http://xie.infoq.cn/article/1f926e590ccc5e10edd40da1e】。文章转载请联系作者。
评论