Go函数参数

标签 go

func (db *Database) VerifyEmail(emailAddress string) (*data.UserName, error) {
....
}

有人可以帮助澄清 1.what 和 2.why 上面的功能吗?来自docsthis book 我可以看出 VerifyEmail 将 emailAdress 作为参数,并将我认为是内存地址的内容返回给用户名。

但是,(db *Database) 是做什么的呢?我的意思是为什么要把它放在 func 之后和函数名称之前?将内存地址作为指针而不是代表它的变量传递给函数的原因可能是什么?

最佳答案

方法名前面的(*db Database)method receiver ,类似于其他语言的“this”,如果对象可能很大或者方法可能需要更改对象,则使用指针——如果复制它,方法只能更改其对象的副本。

关于Go函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29189878/

相关文章:

go - 如何以特定模式生成 UUID

go - 如何避免这个 golang 程序中的死锁?

arrays - 使用双 for 循环合并重叠间隔

go - 如何在 CoAP 服务器程序 Golang 中添加资源或端点

go - 在 Go 中取消阻塞操作

go - 防止 Gin 去除某些字符

Go安装不会创建bin文件

去模拟 Python 的 fileinput.input()?

go - main 之外的结构数组 - Go

go - 功能结果分配