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 回答

長風(fēng)秋雁
TA貢獻1757條經(jīng)驗 獲得超7個贊
帶下劃線的變量不是錯誤指示。GoLand 通知您正在重新分配err
變量。
您首先在此處創(chuàng)建變量:
err := GetSomething()
然后在該行中重新分配相同的變量:
currentDirectory, err := os.Getwd()
這就是為什么err
加下劃線的原因。不是錯誤,只是為了讓您更清楚這一點。
有時,不希望重新分配變量,因為它可能會產(chǎn)生不希望的副作用。
在這種特殊情況下,我認為擁有單個err
變量并在整個函數(shù)/方法中重用它是一種常見的 Go 模式。
- 1 回答
- 0 關(guān)注
- 192 瀏覽
添加回答
舉報
0/150
提交
取消