go语言学习笔记
1 定义
在 Go 语言里,结构体的方法(method)是绑定到特定类型上的函数,
它让你可以用面向对象的风格(对象.方法()
)来操作结构体的数据。
2 方法的基本概念
方法的本质还是函数,只是它有一个接收者(receiver)。
接收者可以是:
值接收者(
func (p Person) ...
)
→ 接收者是结构体的副本。指针接收者(
func (p *Person) ...
)
→ 接收者是结构体的地址,可以修改原结构体的内容。
3 语法
func (接收者名 接收者类型) 方法名(参数列表) 返回值列表 {
// 方法体
}
举例:
package mainimport "fmt"type Person struct {Name stringAge int
}// 值接收者方法
func (p Person) SayHello() {fmt.Printf("Hi, my name is %s and I am %d years old.\n", p.Name, p.Age)
}// 指针接收者方法
func (p *Person) GrowUp() {p.Age++
}func main() {tom := Person{Name: "Tom", Age: 20}tom.SayHello() // 调用值接收者方法tom.GrowUp() // 调用指针接收者方法tom.SayHello()
}