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