Go语言键值对初始化结构体教程
中 变量的初始化的方式有两种,分别为:使用 和使用键值对赋值的方式。
如果使用键值对赋值的方式初始化结构体,没有被赋值的字段将使用该字段 的默认值,如果使用键值对赋值的方式初始化结构体,那么我们可以有选择的指定赋值的字段。
键值对初始化结构体
语法
varName := StructName{ Field1:Field1Value, Field2:Field2Value, ... }
说明
使用键值对的形式给结构体初始化时,我们只需要指定需要设置值的字段名,然后使用冒号的形式给字段名设置值,不需要设置值的字段名可以忽略。
案例
键值对初始化结构体
使用键值对的形式初始化结构体变量
package main import ( "fmt" ) func main() { fmt.Println("嗨客网(www.haicoder.net)") //使用键值对的形式初始化结构体变量 type Student struct { Name string Age int Score float64 } var stu = Student{ Name:"kongzi", Age:1998, Score:100.0, } fmt.Println("Student =", stu) }
程序运行后,控制台输出如下:
我们定义了一个结构体 Student,该结构体初始化有三个字段,一个是 Name,一个是 Age,还有一个 Score,接着,我们显式使用字段名的方式给结构体的每个字段赋值,并打印结果。
键值对初始化结构体
使用键值对的形式初始化结构体变量,键值对顺序可以任意
package main import ( "fmt" ) func main() { fmt.Println("嗨客网(www.haicoder.net)") //使用键值对的形式初始化结构体变量,键值对顺序可以任意 type Student struct { Name string Age int Score float64 } var stu = Student{ Age:1998, Name:"kongzi", Score:100.0, } fmt.Println("Student =", stu) }
程序运行后,控制台输出如下:
我们使用键值对的形式初始化结构体时,结构体里面的键值对的顺序不需要跟结构体里面的顺序一致。我们定义结构体的顺序为 Name、Age 和 Score,但我们赋值的顺序为 Age,Name 和 Score。
键值对初始化结构体
使用键值对的形式初始化结构体变量,可以省略不必要的值的赋值
package main import ( "fmt" ) func main() { fmt.Println("嗨客网(www.haicoder.net)") //使用键值对的形式初始化结构体变量,可以省略不必要的值的赋值 type Student struct { Name string Age int Score float64 } var stu = Student{ Name:"kongzi", } fmt.Println("Student =", stu) }
程序运行后,控制台输出如下:
我们定义了一个结构体 Student,该结构体初始化有三个字段,一个是 Name,一个是 Age,还有一个 Score,接着,我们显式使用字段名的方式给结构体的字段赋值,但我们只给字段 Name 赋值。
这时,程序没有报错,没有被赋值的字段名使用该字段名变量类型的默认值进行初始化。
Go语言键值对初始化结构体总结
如果使用键值对赋值的方式初始化结构体,没有被赋值的字段将使用该字段 的默认值,如果使用键值对赋值的方式初始化结构体,那么我们可以有选择的指定赋值的字段。键值对初始化结构体语法:
varName := StructName{ Field1:Field1Value, Field2:Field2Value, ... }