为了账号安全,请及时绑定邮箱和手机立即绑定

错误在戈兰下划线没有解释

错误在戈兰下划线没有解释

Go
桃花长相依 2022-07-11 17:23:45
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 模式。


查看完整回答
反对 回复 2022-07-11
  • 1 回答
  • 0 关注
  • 161 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信