Goland 中的错误下划线没有解释
err underline in Goland without explanation
Goland 在 err 变量中显示下划线,但没有解释下划线原因的 why/no 工具提示(见下图——箭头指向奇怪的下划线)。
有人知道下划线的原因吗?
(它不是似乎是因为错误是在上面几行定义的,因为我在其他文件中有类似的错误重用并且它们中没有下划线)。
这是代码,尽管如果没有来自 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
变量并在整个 function/method.
中重复使用它是一种常见的 Go 模式
Goland 在 err 变量中显示下划线,但没有解释下划线原因的 why/no 工具提示(见下图——箭头指向奇怪的下划线)。
有人知道下划线的原因吗?
(它不是似乎是因为错误是在上面几行定义的,因为我在其他文件中有类似的错误重用并且它们中没有下划线)。
这是代码,尽管如果没有来自 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
变量并在整个 function/method.