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

Code below IF statement is never executed

我的代码中有一段出现了意外行为。

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

让我们逐步完成它。

fmt.Println("Error:", err)

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

if err == nil {
    return err
}

这是说 ..“如果 err 变量是 nil(这是 .. 我们在上面建立的)...那么 return nil值。

此时 .. 您的函数已 returned.. 所以它下面没有其他内容 运行.

也许您指的是这一行?:

if err != nil {
//     ^^ NOT equal?