func (b *Book) Save(){}和func (b Book) Save(){}有什么区别?

如题:

func (b *Book) Save(){
}

func (b Book) Save(){
}

有什么区别吗?

共 2 个回复


doomsplayer

一个绑定在Book类的指针上,另一个绑定在Boom类上. 在调用的时候没什么区别,go里面指针是透明的. 但是如果你的Save方法需要修改Book类的b的话,就需要绑定Save在指针上.因为Go里面对于参数是传值的.若绑定在Book类上,Save方法只会得到一个b的副本,无法修改b本体.

# 0