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] 删除。
我来说两句