我的情况是,我有一个函数可以返回最多 5 个不同的错误,但我不确定按照 Go 的惯例,哪个函数被认为是正确的。我在下面做了一个小的 MSVC 示例来说明我的问题。
使用 if 语法来阻止我的错误。
if err := validatePassword(password); err != nil {
return err
}
if passwordHash, err := bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost); err != nil {
return err
}
或者以不同的方式命名每个错误(看起来很麻烦......)
errValidatePassword := validatePassword(password)
if errValidatePassword != nil {
return errValidatePassword
}
passwordHash, errPasswordHash := bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost)
if errPasswordHash != nil {
return errPasswordHash
}
或者使用命名返回。
func registerAccount(email string, password string) (err error) {
err = validatePassword(password)
if err != nil {
return err
}
// POSSIBLE ISSUE HERE as err already been inistalised????
passwordHash, err := bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost)
if err != nil {
return err
}
}
忽然笑
一只甜甜圈
慕神8447489
相关分类