go语言学习笔记

1 定义

在 Go 语言里,结构体的方法(method)绑定到特定类型上的函数

它让你可以用面向对象的风格(对象.方法())来操作结构体的数据。

2 方法的基本概念

  • 方法的本质还是函数,只是它有一个接收者(receiver)

  • 接收者可以是:

    • 值接收者func (p Person) ...

      → 接收者是结构体的副本。

    • 指针接收者func (p *Person) ...

      → 接收者是结构体的地址,可以修改原结构体的内容。

3 语法

func (接收者名 接收者类型) 方法名(参数列表) 返回值列表 {

// 方法体

}

举例:

Go 复制代码
package main

import "fmt"

type Person struct {
    Name string
    Age  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()
}