当将字符串解析为文本时,我希望任何不可解析的字符串产生零时间然后继续。
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/