方法
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())
}