方法

Struct 方法與函式非常相似:

type User struct {
    name string
}

func (u User) Name() string {
    return u.name
}

func (u *User) SetName(newName string) {
    u.name = newName
}

唯一的區別是新增了方法接收器。它可以宣告為型別的例項或指向該型別例項的指標。由於 SetName() 使例項發生變異,因此接收器必須是指標才能實現例項的永久性更改。

例如:

package main

import "fmt"

type User struct {
    name string
}

func (u User) Name() string {
    return u.name
}

func (u *User) SetName(newName string) {
    u.name = newName
}

func main() {
    var me User

    me.SetName("Slim Shady")
    fmt.Println("My name is", me.Name())
}

去遊樂場