Value receiver
:
func (u user) fun1() {
....
}
Pointer receiver
:
func (u *user) fun2() {
....
}
Value receiver
操作的是值的拷贝,而pointer receiver
操作的是实际的值。
用pointer
去调用value receiver
的方法,实际的操作是:
(*p).fun1()
而用value
去调用pointer receiver
的方法,实际的操作是:
(&v).fun2()
参考资料:
Go in Action。