# 字段与方法

URL: https://caijiao.org/go/03-structured/02-fields-methods
Source: docs/go/03-structured/02-fields-methods.md
Description: 本节介绍 Go 语言中结构体的字段与方法定义，展示如何通过方法操作结构体数据。

结构体包含字段，方法是关联到结构体的函数。

## 1. 字段访问

```go
type Person struct {
    Name string
    Age  int
}

p := Person{Name: "Alice", Age: 30}
fmt.Println(p.Name)  // 输出：Alice
````

## 2. 定义方法

方法是绑定在结构体上的函数，接收者可以是值类型或指针类型。

```go
func (p Person) Greet() {
    fmt.Printf("Hello, my name is %s.\n", p.Name)
}
```

调用方法：

```go
p.Greet()  // 输出：Hello, my name is Alice.
```

## 3. 指针接收者方法

修改结构体字段通常使用指针接收者：

```go
func (p *Person) SetAge(age int) {
    p.Age = age
}

p.SetAge(35)
fmt.Println(p.Age)  // 输出：35
```

---

通过字段与方法，结构体支持面向对象风格的编程。
