Golang中的_(下劃線)稱為空白標(biāo)識符。標(biāo)識符是用于識別目的的程序組件的用戶定義名稱。
Golang有一個特殊的特性,可以使用空白標(biāo)識符定義和使用未使用的變量。未使用變量是指用戶在整個程序中定義但從未使用過的變量。這些變量使程序幾乎不可讀。如你所知,Golang是一種更加簡潔和可讀的編程語言,因此它不允許程序員定義未使用的變量,如果你這樣做,編譯器將拋出一個錯誤。
當(dāng)函數(shù)返回多個值時,才真正使用Blank Identifier,但是我們只需要幾個值并希望丟棄一些值。
基本上,它告訴編譯器不需要此變量,并且將其忽略而沒有任何錯誤。 它隱藏變量的值并使程序可讀。 因此,每當(dāng)您將值分配給Bank
Identifier時,它就變得不可用。
示例1:在下面的程序中,函數(shù)mul_div返回兩個值,我們將這兩個值都存儲在mul和div標(biāo)識符中。但是在整個程序中,我們僅使用一個變量,即mul。所以編譯器會拋出錯誤div declared and not used
package main import "fmt" func main() { //調(diào)用函數(shù) //函數(shù)返回兩個值 //分配給mul和div標(biāo)識符 mul, div := mul_div(105, 7) //僅使用mul變量 //編譯器會報錯 fmt.Println("105 x 7 = ", mul) } //函數(shù)返回兩個 //整數(shù)類型的值 func mul_div(n1 int, n2 int) (int, int) { //返回值 return n1 * n2, n1 / n2 }
輸出:
# command-line-arguments .\test.go:10:7: div declared but not used
示例2:讓我們使用空白標(biāo)識符來更正上述程序。代替div標(biāo)識符,只需使用_(下劃線)。它允許編譯器忽略該特定變量的錯誤(declared and not used)。
package main import "fmt" func main() { //調(diào)用函數(shù) //函數(shù)返回兩個值 //分配給mul和空白標(biāo)識符 mul, _ := mul_div(105, 7) //只使用mul變量 fmt.Println("105 x 7 = ", mul) } //函數(shù)返回兩個 //整數(shù)類型的值 func mul_div(n1 int, n2 int) (int, int) { //返回值 return n1 * n2, n1 / n2 }
輸出:
105 x 7 = 735
注意事項:
您可以在同一程序中使用多個空白標(biāo)識符。因此,可以說Golang程序可以使用相同的標(biāo)識符名稱(即空白標(biāo)識符)來包含多個變量。
在很多情況下,即使知道這些值將不會在程序中的任何地方使用,也需要分配值來完成語法。就像一個返回多個值的函數(shù)。在這種情況下,通常使用空白標(biāo)識符。
您可以將任何類型的任何值與空白標(biāo)識符一起使用。