/

在 Go 中的方法

在 Go 中的方法

在 Go 中,一個函數可以被賦值給結構體,這種情況下我們稱之為方法

舉個例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
type Person struct {
Name string
Age int
}

func (p Person) Speak() {
fmt.Println("Hello from " + p.Name)
}

func main() {
flavio := Person{Age: 39, Name: "Flavio"}
flavio.Speak()
}

方法可以聲明為指針接收者或值接收者。

上面的例子展示了一個值接收者,它接收結構體實例的副本。

下面是一個指針接收者,它接收結構體實例的指針:

1
2
3
func (p *Person) Speak() {
fmt.Println("Hello from " + p.Name)
}

tags: [“Go”, “方法”, “函數”, “指針接收者”, “值接收者”]