gpt4 book ai didi

go - 重置 golang 中的错误是不好的做法吗?

转载 作者:IT王子 更新时间:2023-10-29 01:26:19 24 4
gpt4 key购买 nike

当将字符串解析为文本时,我希望任何不可解析的字符串产生零时间然后继续。

passwordLastUsed, err = time.Parse(time.RFC3339, record[lastUsed])
if err != nil {
err = nil
passwordLastUsed = time.Time{}
}

这段代码看起来有点乱,'ineffassign' linter 为 'err = nil' 语句返回这个:

warning: ineffectual assignment to err (ineffassign)

有没有更好的方法来处理这个问题,还是我应该忽略 linter?

最佳答案

如果您想这样做的话,重置错误变量并不是坏习惯。

设置以后不使用的变量是不好的做法——这就是警告的内容。

你正在做的可能从来没有理由重置错误,因为在 if block err 之后 总是nil

如果您只是在某些情况下重置,这确实有意义。一个常见的例子:

result, err := db.Query(...)
if err == sql.ErrNoRows {
err = nil // Ignore not-found rows
}
if err != nil {
return err // But return all other errors
}

关于go - 重置 golang 中的错误是不好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47940805/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com