我不理解以下函数定义。 u * Unit在此函数定义中的含义是什么?我不认为这是返回值,无法在Go教程中找到答案。
func (u *Unit) processImage(){
....
}
最佳答案
在“func(u * Unit)processImage()”函数中,“u * Unit”既是参数/输入又是接收者,这取决于processImage()中包含的内容。
例如:
func (u *Unit) processImage() {
u.sum = u.x + u.y
}
在这种情况下,processImage()使用结构“Unit”的x和y字段的值作为参数/输入以更新“sum”的值,然后返回u(具有新的sum值)。具有(u * Unit)的方法称为指针接收器。
带有(u Unit)的以下方法称为值接收器:
func (u Unit) processImage() int {
return u.x + u.y
}
在值接收器中,u包含参数/输入值,而不是接收器。
关于go - 如何理解函数中定义的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62762472/