小天管理 发表于 7月8日 Share 发表于 7月8日 type A struct { a int } func f() (*A, error) { // do something // if err != nil { // return nil, err // } return nil, nil } func TestX(t *testing.T) { a, err := f() if err != nil { t.Log(err) } else { t.Log(a.a) // 这里 a 为 nil ,所以 a.a 非法访问,崩溃 } } go 关于错误处理,似乎默认都是大家约定,如果 err != nil ,另外一个值是正常的值,但是理论上来说,即使 err = nil ,另外一个值也不一定是合理的值。感觉下面的写法似乎更好一点。 func TestX(t *testing.T) { a, err := f() if a == nil { t.Log(err) } else { t.Log(a.a) } } 引用 意见的链接 分享到其他网站 More sharing options...
已推荐帖子
加入讨论
您现在可以发表并稍后注册. 如果您是会员,请现在登录来参与讨论.