【go语言】2.2.3 结构体(Structs)

115 阅读1分钟

在 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 语言程序的基础技能。 推荐阅读:

mp.weixin.qq.com/s/dV2JzXfgj…

mp.weixin.qq.com/s/an83QZOWX…

file