在将字符串解析为文本时,我希望任何不可解析的字符串导致零时间然后继续。
passwordLastUsed, err = time.Parse(time.RFC3339, record[lastUsed])
if err != nil {
err = nil
passwordLastUsed = time.Time{}
}
这段代码看起来有点乱,'ineffassign'linter为'err = nil'语句返回这个:
警告:对err的无效分配(ineffassign)
有没有更好的方法来处理这个或我应该忽略linter?
重置错误变量是不错的做法,如果这是你想要做的。
设置以后不使用的变量是不好的做法 - 这就是警告的内容。
可能从来没有理由像你一样重置错误,因为在if
块之后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
}