错误在Goland中下划线,无需说明

强尼

Goland在err变量中显示了一个下划线,但没有解释为什么/没有该下划线原因的工具提示(请参见下图-箭头指向怪异的下划线)。 Goland中的代码,带下划线的err

有人知道下划线的原因吗?

(这似乎不是因为在上面的几行中定义了err,因为我在其他文件中有类似的err重用,并且它们中没有下划线)。

这是代码,尽管如果没有IDE的解释图片,这个问题将毫无意义,因为这似乎是Goland中的错误。

package mypack

import (
    "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
}
詹斯

带下划线的变量不表示错误。是的Goland通知你,你是重新分配err变量。

您首先在这里创建变量:

err := GetSomething()

然后在该行中重新分配相同的变量:

currentDirectory, err := os.Getwd()

这就是为什么err要强调的原因。这不是一个错误,只是使您更明白这一点。

有时,不希望重新分配变量,因为它可能会产生有害的副作用。

在这种特殊情况下,我认为拥有单个err变量并在整个函数/方法中重复使用它是一种常见的Go模式

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章