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

Goland 在 err 变量中显示下划线,但没有解释为什么/没有下划线原因的工具提示(见下图——箭头指向奇怪的下划线)。

http://img4.mukewang.com/62cbec3b000144c606100539.jpg

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


(这似乎不是因为上面几行定义了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

}


桃花长相依
浏览 162回答 1
1回答

长风秋雁

带下划线的变量不是错误指示。GoLand 通知您正在重新分配err变量。您首先在此处创建变量:err := GetSomething()然后在该行中重新分配相同的变量:currentDirectory, err := os.Getwd()这就是为什么err加下划线的原因。不是错误,只是为了让您更清楚这一点。有时,不希望重新分配变量,因为它可能会产生不希望的副作用。在这种特殊情况下,我认为拥有单个err变量并在整个函数/方法中重用它是一种常见的 Go 模式。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go