Go 如何理解函数中定义的指针

Go 如何理解函数中定义的指针,go,Go,我不理解下面的函数定义。在这个函数定义中,u*单位是什么意思?我认为这不是返回值,在围棋教程中找不到答案 func (u *Unit) processImage(){ .... } 在func u*Unit processImage函数中,u*Unit是参数/输入,也是接收器,它取决于processImage中包含的内容。 例如: func (u *Unit) processImage() { u.sum = u.x + u.y } 在这种情况下,processImage使用结构单元的

我不理解下面的函数定义。在这个函数定义中,u*单位是什么意思?我认为这不是返回值,在围棋教程中找不到答案

func (u *Unit) processImage(){

 ....
}

在func u*Unit processImage函数中,u*Unit是参数/输入,也是接收器,它取决于processImage中包含的内容。 例如:

func (u *Unit) processImage() {
 u.sum = u.x + u.y
}
在这种情况下,processImage使用结构单元的x和y字段的值作为参数/输入来更新sum值,然后返回u和sum的新值。 带有u*单位的方法称为指针接收器

下面使用u单位的方法称为值接收器:

func (u Unit) processImage() int {
   return u.x + u.y
}

在值接收器中,u包含参数/输入值,它不是接收器。

它是方法的接收器。processImage是为类型单位定义的方法。对于Unit类型的变量u,可以调用u.processImage。processImage获得指向u的指针。有关Go语法的简单问题,请访问上面的Go链接。我不确定您希望得到的答案是什么,但如果您想知道值接收器与指针接收器之间的差异,您可以参考:感谢所有人回答此问题。它真的帮助我学习围棋语言。