我正在学习 GO,我在其中一个项目中遇到了这样的功能:
// BeforeCreate ...
func (u *User) BeforeCreate() error {
if len(u.Password) > 0 {
enc, err := encryptedString(u.Password)
if err != nil {
return err
}
u.EncryptedPassword = enc
}
return nil
}
我不明白函数名称之前的括号后面是什么,以及如何以及在那里传递什么数据。这与普通函数参数不同,它们在函数名称后的括号中传递。在互联网上,没有人谈论这个,我不明白如何为谷歌提出我的问题,以便它找到我需要的东西。
(u *User)意味着该方法采用结构引用并将操作仅应用于该结构。也就是说,创建该方法是为了使用 User 结构。简而言之,我们告诉该方法它只适用于用户结构。例子: