這篇文章主要介紹了Go 中的空白標識符下劃線,空白標識符是未使用的值的佔位符,由下劃線(_)表示,下文對其相關介紹需要的小夥伴可以參考一下 |
與 Python 一樣,Go 語言也有空白標識符。
空白標識符是未使用的值的佔位符。它由下劃線(_)表示。由於空白標識符沒有名稱,因此它們也被稱爲匿名佔位符。
在 Go 語言中, 不允許聲明未使用的變量或導入語句。也就是說,我們無法聲明變量並將其留下未使用。同樣,如果您導入一個包,那麼也必須使用它。
這個時候就需要一個空白標識符。
如果 Go 中的函數返回多個值,則必須定義相等數量的變量來保存這些值。但是,如果您只需要其中一些值而不需要其他值,若某次賦值需要匹配多個左值,但其中某個變量不會被程序使用, 那麼用空白標識符來代替。該變量可避免創建無用的變量,並能清楚地表明該值將被丟棄。
如下所示:
result, error = Dosomething() if error { // handle error }
在上面的代碼中,result 與程序無關,而且後續代碼也沒有使用它。如果編譯的話,Go 編譯器會報錯。
result declared but not used
在這種情況下,您可以將結果替換爲下劃線或空白標識符,
如下所示:
_, error = Dosomething() if error { // handle error }
即使您聲明瞭一個變量,您也可以稍後使用空白標識符來忽略它,如下面的代碼所示:
product, error = Dosomething() if error { // handle error } // ignore unused variable _ = product
在 for...range 中使用空白標誌符
func Sum(numbers []int) int { sum := 0 for _, number := range numbers { sum += number } return sum }
可以利用 _ 分配任何東西:
var _ I = T{}
無法訪問此變量,以便將從生成的程序中優化。但是,如果 T 類型未分配給接口 I ,則可能會導致編譯錯誤。因此,在這種情況下,它被用作關於類型的靜態斷言。
在 Go 中,如果你導入一個包,那麼你必須使用它,否則會出現編譯器錯誤。
imported and not used “”
空白標識符可用於解決此編譯器錯誤。
有兩種方法可以使用空白標識符來解決未使用的包錯誤,如下所示:
第一種:聲明一個全局空白標識符(在 main() 函數之前),該標識符從未使用的包中訪問符號,例如下面代碼中的 Open:
import "os" var _ = os.Open func main() { }
第二種:在未使用的包前加上一個空白標識符,
如下所示:
import _ "os" func main(){ }
空白標識符通過避免在整個代碼中使用未使用的變量聲明,使代碼更具可讀性。
Golang 中任何聲明但未使用的包和變量都會引發錯誤。這一規則使得我們的代碼保持乾淨和輕量。
有時如果需要在未來使用並提前導入一些軟件包,就可以使用空白標識符。
有時候函數會返回多個參數,但是我們只需要使用其中一個變量的時候,就可以通過空白標誌符來進行接收。
到此這篇關於Go 中的空白標識符下劃線的文章就介紹到這了。