Goland 在 err 变量中显示下划线,但没有解释为什么/没有下划线原因的工具提示(见下图——箭头指向奇怪的下划线)。有人知道下划线的原因吗?(这似乎不是因为上面几行定义了err,因为我在其他文件中有类似的err重用并且它们中没有下划线)。这是代码,尽管如果没有来自 IDE 的解释图片,这个问题将毫无意义,因为这似乎是 Goland 中的一个错误。package mypackimport ( "fmt" "os")func SomeFunc() (string, error) { err := GetSomething() if err != nil { return "", fmt.Errorf("some err") } currentDirectory, err := os.Getwd() if err != nil { return "", fmt.Errorf("error getting current dir. %v", err) } return currentDirectory, nil}func GetSomething() error { return nil}
1 回答
长风秋雁
TA贡献1757条经验 获得超7个赞
带下划线的变量不是错误指示。GoLand 通知您正在重新分配err
变量。
您首先在此处创建变量:
err := GetSomething()
然后在该行中重新分配相同的变量:
currentDirectory, err := os.Getwd()
这就是为什么err
加下划线的原因。不是错误,只是为了让您更清楚这一点。
有时,不希望重新分配变量,因为它可能会产生不希望的副作用。
在这种特殊情况下,我认为拥有单个err
变量并在整个函数/方法中重用它是一种常见的 Go 模式。
- 1 回答
- 0 关注
- 161 浏览
添加回答
举报
0/150
提交
取消