在go語言中,空白標識符是未使用的值的佔位符,由下劃線「_」表示。空白標識符可以像其他標識符一樣用於變數的聲明或賦值(任何類型都可以賦值給它),但任何賦給這個標識符的值都將被拋棄,因此這些值不能在後續的程式碼中使用,也不可以使用“_”作為變數對其它變數進行賦值或運算。
本教學操作環境:windows7系統、GO 1.18版本、Dell G3電腦。
與 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 “<package name>”
空白標識符可用來解決此編譯器錯誤。
有兩種方法可以使用空白標識符來解決未使用的套件錯誤,如下所示:
第一種:宣告一個全域空白標識符(在main() 函數之前),該標識符從未使用的套件中存取符號,例如下面程式碼中的Open:
import "os" var _ = os.Open func main() { }
第二種:在未使用的套件前加上一個空白標識符,如下所示:
import _ "os" func main(){ }
空白標識符透過避免在整個程式碼中使用未使用的變數聲明,使程式碼更具可讀性。
總結
Golang 中任何宣告但未使用的套件和變數都會引發錯誤。這個規則使得我們的程式碼保持乾淨和輕量。
• 有時如果需要在未來使用並提前導入一些軟體包,就可以使用空白標識符。
• 有時候函數會傳回多個參數,但是我們只需要使用其中一個變數的時候,就可以透過空白標誌符號來進行接收。
以上是go語言空白標識符是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!