func (db *Database) VerifyEmail(emailAddress string) (*data.UserName, error) {
....
}
有人可以帮助澄清 1.what 和 2.why 上面的功能吗?来自docs和 this book 我可以看出 VerifyEmail 将 emailAdress 作为参数,并将我认为是内存地址的内容返回给用户名。
但是,(db *Database)
是做什么的呢?我的意思是为什么要把它放在 func
之后和函数名称之前?将内存地址作为指针而不是代表它的变量传递给函数的原因可能是什么?
最佳答案
方法名前面的(*db Database)
是method receiver ,类似于其他语言的“this”,如果对象可能很大或者方法可能需要更改对象,则使用指针——如果复制它,方法只能更改其对象的副本。
关于Go函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29189878/