go语言的开发规范(Go语言编程从入门到精通)
go语言的开发规范(Go语言编程从入门到精通)12行、13行:给数据字段赋值,赋的值应确保正确的数据类型。11行:初始化一个变量s,类型为结构体类型。5行:创建一个名字为student的结构体,起始用大括号。6行:结构体内数据字段名为name,类型为string。7行:结构体内数据字段名为age,类型为int。
Go (或Golang )是Google 在2007 年开发的一种开源编程语言,出自Robert Griesemer 、Rob Pike 和Ken Thompson 之手。2009 年11 月10 日, Google Open Source Blog 向全球发布了这款语言:公告指出Go 的主要目标是“兼具Python 等动态语句的开发速度和C 或C ++等编译型语言的性能与安全性”。
1. 结构体
结构体是具有指定数据类型的数据字段,可以使用变量引用对应的值。在结构体中,变量中存储不同类型的数据字段。结构体中的值访问更加方便,数据结构灵活,创建方式简单。利用结构体,让模块化成都更高,方便地创建并使用结构数据。
先举个例子
5行:创建一个名字为student的结构体,起始用大括号。
6行:结构体内数据字段名为name,类型为string。
7行:结构体内数据字段名为age,类型为int。
11行:初始化一个变量s,类型为结构体类型。
12行、13行:给数据字段赋值,赋的值应确保正确的数据类型。
15行:查看定义的变量s。
16行、17行:访问结构体的数据字段,采用点(.)获取指定字段
嵌套结构体
当数据结构存在复杂的多个层级关系,为了适应这种情况,需要在一个结构体中嵌套另外一个结构体,比如有一个学生student的结构体,有名字(name)、年龄(age)、地址(address)三个字段,在地址(address)字段中,有地址所在的城市(city)、街道(street)、门牌号(number),当然你也可以想象更复杂的环境。
首先举个例子
3行:定义一个student的结构体
6行:定义字段address,类型为8行的Address结构体类型,这样就可以通过访问address字段访问到Address结构体内的字段。
14行:声明一个变量,类型为student结构体。
15行、16行:给student结构体的name字段、age字段赋值。
17行、18行、19行:给student结构体的address字段赋值,赋的值通过结构体Address进行赋值。
28行:通过fmt.Printf拼接输出字符串
自定义结构体数据字段的默认值
布尔型boolen false
整形integer 0
浮点型float 0.0
字符串string “”
指针pointer nil
函数function nil
接口interface nil
切片slice nil
通道channel nil
映射map nil
结构体的比较
在结构体比较的时候,(1)检查类型是否相同;(2)检查结构体的值是否相同。
2. 结构体中的指针引用和值引用
值引用复制结构体
12行:定义s2变量,赋值s1
13行:s1变量的age字段修改值为19
14行、15行:分别输出s1和s2,可以看到s2的age值是原来的18,并没有随着s1的age的值进行变化。
指针引用复制结构体
12行:通过指针引用的方式复制结构体
13行:对s1的age字段修改值
14行、15行:可以看到值是一样的,结构体的指针也是一样的