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, 如果使用键值对赋值的方式初始化结构体,没有被赋值的字段将使用该字段 类型 的默认值,如果使用键值对赋值的方式初始化结构体,那么我们可以有选择的指定赋值的字段。键值对初始化结构体语法: