📅  最后修改于: 2023-12-03 14:42:06.943000             🧑  作者: Mango
在Go语言中很常见的操作就是定义和初始化结构体。结构体是用户自定义类型,可以包含多个不同类型的字段,是一种非常灵活的数据结构。
在Go语言中,定义结构体的基本语法如下:
type StructName struct {
Field1 FieldType1
Field2 FieldType2
...
}
其中,StructName
是结构体的名称,FieldN
是结构体中的字段名,FieldTypeN
是字段的类型。
例如,我们要定义一个人的结构体,可以这样写:
type Person struct {
Name string
Age int
Sex string
}
上面的代码定义了一个Person结构体,拥有三个字段Name、Age和Sex。字段类型分别为string、int和string。
在Go语言中,初始化结构体有多种方式。下面介绍其中几种比较常用的方式。
使用直接初始化的方式,可以按照结构体中字段列表的顺序,为字段依次指定值。
var p = Person{"张三", 18, "男"}
上面的代码创建了一个Person结构体,字段的值分别为"张三"、18和"男"。
使用命名初始化的方式,可以按照结构体中字段名的顺序,为字段指定值。
var p = Person{
Name: "张三",
Age: 18,
Sex: "男",
}
上面的代码创建了一个Person结构体,字段的值分别为"张三"、18和"男"。
在Go语言中,结构体变量可以是值类型,也可以是指针类型。使用指针初始化的方式,可以创建一个结构体指针。
var p = &Person{
Name: "张三",
Age: 18,
Sex: "男",
}
上面的代码创建了一个Person结构体指针,字段的值分别为"张三"、18和"男"。
使用上面介绍的三种方式,可以很方便地初始化一个结构体或结构体指针。
如果你想了解更多Go语言的知识点,请访问官方文档。
type Person struct {
Name string
Age int
Sex string
}
func main() {
// 直接初始化
var p1 = Person{"张三", 18, "男"}
// 命名初始化
var p2 = Person{
Name: "李四",
Age: 20,
Sex: "女",
}
// 指针初始化
var p3 = &Person{
Name: "王五",
Age: 22,
Sex: "男",
}
fmt.Println(p1) // {张三 18 男}
fmt.Println(p2) // {李四 20 女}
fmt.Println(p3) // &{王五 22 男}
}