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

标签 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

最佳答案

让我们逐步了解它。

fmt.Println("Error:", err)

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

if err == nil {
    return err
}

这是说 ..“如果 err 变量是 nil(它是 .. 我们在上面建立的)......然后返回 nil 值。

此时..你的函数已经返回..所以它下面的任何东西都不会运行。

也许你指的是这一行?:

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

关于debugging - IF 语句下面的代码永远不会执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28952513/

相关文章:

debugging - “Generics add stability to your code by making more of your bugs detectable at compile time.”-用外行的术语解释吗?

docker - 管理用于 docker 构建的本地/私有(private) Golang 包和模块

go - 写入 ffmpeg 标准输入会卡住程序

memory-leaks - 垃圾收集器会收集永远不会继续的 Go 例程吗?

dictionary - 如何在 Go 中获取变量的内存大小?

go - 等待所有go例程,非阻塞

c++ - gdb 显示类成员的乱码值,尽管代码有效

c# - 如何获取异常的完整 C# 堆栈跟踪,就像我在 Visual Studio 中看到的那样?

python - VSCode 中是否有快捷方式在调试 REPL 中执行当前行或选择?

javascript - PreloadJS未定义(Windows 8游戏编程)