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

标签 go

我不理解以下函数定义。 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/

相关文章:

Goroutines 执行后卡住

go - 我应该如何组织我的 go 文件以支持跨平台构建和强制一致性?

serialization - 在 Golang 中序列化模型

windows - 谷歌去赢 : can't find import "http"

macos - 在 OSX 上安装 Go 时出现 Ld 错误

c# - 使用 AES-GSM 方法解密在 GO 中编码的 C# 字符串

performance - Golang-常量和常量之间的性能差异

pdf - 使用 golang 提供 pdf

methods - 方法接收者

linux - 如何在 Linux 上用纯 Go 实现 "file -s <file>"?