永远不会执行IF语句下面的代码

时间:2015-03-09 21:58:32

标签: debugging go

我的代码中有一部分出现意外行为。

. . .
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

1 个答案:

答案 0 :(得分:3)

让我们一步一步。

fmt.Println("Error:", err)

如果输出为Error: <nil> ..那么您的err变量为nil

if err == nil {
    return err
}

这就是说..“如果err变量是nil(它是......我们在上面确定了这一点)...然后返回nil值。

此时..你的函数已经返回..所以它下面没有别的东西会运行。

也许你的意思是这条线?:

if err != nil {
//     ^^ NOT equal?
相关问题