在 Go 语言中,struct(结构体)是一种组合多个字段(field)的自定义数据类型。每个字段都有一个名字和一个类型,可以用来存储数据。
定义结构体
你可以使用 type 关键字和 struct 关键字来定义一个结构体:
type Person struct {
Name string
Age int
}
这个 Person 结构体有两个字段:Name 和 Age。
创建结构体实例
你可以使用结构体字面值(struct literal)来创建一个结构体实例:
p := Person{Name: "Alice", Age: 20}
也可以先创建一个零值的结构体,然后再对字段赋值:
var p Person
p.Name = "Alice"
p.Age = 20
访问结构体的字段
你可以使用 . 操作符来访问结构体的字段:
name := p.Name
age := p.Age
fmt.Println(name, age) // 输出 "Alice 20"
结构体的方法
你可以为结构体定义方法。方法就是一个有接收者的函数,接收者在方法名之前。以下是为 Person 结构体定义一个 Greet 方法的例子:
func (p Person) Greet() {
fmt.Println("Hello, my name is", p.Name)
}
你可以这样调用这个方法:
p.Greet() // 输出 "Hello, my name is Alice"
指针和结构体
当你想要修改结构体的字段,或者让方法改变接收者的状态时,你应该使用指针类型的接收者。例如:
func (p *Person) Birthday() {
p.Age++
}
这个 Birthday 方法会增加 Person 的 Age。你可以这样调用它:
p.Birthday()
fmt.Println(p.Age) // 输出 21
以上就是 Go 语言中结构体的基础内容。理解和掌握结构体是编写 Go 语言程序的基础技能。 推荐阅读: