func main() {
bill := user{"Bill", "@qq.com"}
bill.ChangeEmail("@ni")
bill.Notify()
jojo := &user{"jojo", "@666.com"}
jojo.ChangeEmail("@ma")
jojo.Notify()
}
type user struct {
name string
email string
}
//(u user)为值接收者
func (u user)Notify(){
fmt.Printf("send to %s<%s>\n",u.name,u.email)
}
//(u *user)为指针接收者
func (u *user)ChangeEmail(e string) {
u.email=e
}
输出
send to Bill<@ni>
send to jojo<@ma>
假如把ChangeEmail函数的接收者(u *user)换成(u user),则输出
send to Bill<@qq.com>
send to jojo<@qq.com>
总结:函数的指针接收者能接收到值并可以改变值
多多指教