【笔记】Go语言的结构体
前言
Go语言的结构体学习笔记
定义结构体
- 在函数外部定义结构体,作用域是全局的
1 | type 结构体名 struct { |
通过结构体名定义结构体变量
先定义变量后赋值
- 根据结构体所定义的属性单独赋值
1 | func main() { |
在定义变量时直接赋值
- 根据结构体所定义的所有属性直接赋值
1 | func main() { |
1 | func main() { |
通过指针定义结构体变量
先定义变量后赋值
通过new函数
1 | func main() { |
通过取址符
1 | func main() { |
在定义变量时直接赋值
1 | func main() { |
1 | func main() { |
为结构体起别名
- 当通过
type
关键词为已经定义的结构体再次定义时,相当于为结构体起别名 - 新得到的数据类型被认为是一种新的数据类型,但是可以通过强制类型转换进行转换
1 | type Person struct { |
结构体变量之间的对比
1 | if 结构体变量 == 结构体变量 { |
1 | if 结构体变量 != 结构体变量 { |
结构体切片
声明结构体切片
1 | var 变量名 []结构体名 |
为结构体切片赋值
1 | 变量名 = [数组长度]数据类型{值, 值} |
为结构体切片指定元素赋值
1 | 变量名[数组下标].属性名 = 值 |
获取结构体切片中元素的值
1 | 变量名[数组下标].属性名 |
结构体数组
声明结构体数组
1 | var 变量名 [数组长度]结构体名 |
为结构体数组赋值
1 | 变量名 = [数组长度]数据类型{值, 值} |
为结构体数组指定元素赋值
1 | 变量名[数组下标].属性名 = 值 |
获取结构体数组中元素的值
1 | 变量名[数组下标].属性名 |