1. 列表初始化
Go 语言 中 结构体 变量的初始化的方式有两种,分别为:
- 使用列表对字段挨个赋值
- 使用键值对赋值 的方式。
如果我们使用列表对字段挨个赋值的方式初始化结构体,那么结构体的每个字段都必须要要赋值,否则程序报错。并且使用列表初始化的方式定义结构体时,最后一个字段也需要加逗号结尾符。
说明:我们只需要定义一个该结构体类型的 变量 名,接着在大括号里面对结构体的每个字段挨个设置值。这里的每个字段都必须设置值,如果不设置,则程序报错。
举例:
运行:
说明:我们定义了一个结构体 Student,该结构体初始化有三个字段,一个是 string 类型的 Name,一个是 int 类型的 Age,还有一个 float64 类型的 Score。
接着我们使用列表初始化的形式定义结构体变量,并为结构体变量的每个字段赋值。
使用列表初始化的形式定义结构体变量,必须每个字段都赋值
举例:
运行:
说明:我们定义了一个结构体 Student,该结构体初始化有三个字段,但我们初始化赋值的时候,只给了两个字段赋值,因此我们的程序报错。
2. 键值对初始化
举例:
运行:
说明:我们使用键值对的形式初始化结构体时,结构体里面的键值对的顺序不需要跟结构体里面的顺序一致。我们定义结构体的顺序为 Name、Age 和 Score,但我们赋值的顺序为 Age,Name 和 Score。
使用键值对的形式初始化结构体变量,可以省略不必要的值的赋值
我们定义了一个结构体 Student,该结构体初始化有三个字段,一个是 Name,一个是 Age,还有一个 Score,接着,我们显式使用字段名的方式给结构体的字段赋值,但我们只给字段 Name 赋值。
这时,程序没有报错,没有被赋值的字段名使用该字段名变量类型的默认值进行初始化。
3. 总结
1, 我们使用列表对字段挨个赋值的方式初始化结构体,那么结构体的每个字段都必须要要赋值,否则程序报错。并且使用列表初始化的方式定义结构体时,最后一个字段也需要加逗号结尾符。列表初始化结构体语法:
2, 如果使用键值对赋值的方式初始化结构体,没有被赋值的字段将使用该字段 类型 的默认值,如果使用键值对赋值的方式初始化结构体,那么我们可以有选择的指定赋值的字段。键值对初始化结构体语法: