我最近发现一些 go 代码正在测试框架中运行,其中有一些未初始化的变量。
这会导致恐慌,它在顶部有一个包含一些 c 代码的堆栈跟踪。
在函数中,有没有一种方法可以简明地检测作为实现成员引用的结构是否为零?IE
func ( d *Dog ) canBark Bool {
//if d is nil, cryptic exception is thrown.
//is there a way to defend against this?
}
抛出的错误是
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xb code=0x1 addr=0x0 pc=0x4ec83a]
goroutine 16 [running]:
runtime.panic(0x9b7400, 0xf7ddf3)
似乎在 go 中,这种较低级别的错误应该很少发生,也许根本不会发生......
可能有一种 Golang 方法来处理 nil 引用,它不会用 if/else 逻辑使代码过于混乱。例如,在 java 中,您可以将大代码段包装在空指针异常处理程序中。
临摹微笑
开心每一天1111
相关分类