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