我的代码中有一部分出现意外行为。
. . .
fmt.Println("Error:", err)
if err == nil {
return err
}
fmt.Println("Done category")
. . .
上面的部分有以下输出
Error: <nil>
以下代码if语句永远不会执行。如果我删除if语句,代码就会按预期运行。
参考:https://github.com/skarllot/flogviewer/blob/master/wlog/parser.go#L138
答案 0 :(得分:3)
让我们一步一步。
fmt.Println("Error:", err)
如果输出为Error: <nil>
..那么您的err
变量为nil
。
if err == nil {
return err
}
这就是说..“如果err
变量是nil
(它是......我们在上面确定了这一点)...然后返回nil
值。
此时..你的函数已经返回..所以它下面没有别的东西会运行。
也许你的意思是这条线?:
if err != nil {
// ^^ NOT equal?