首頁 > 軟體

Go 中的空白識別符號下劃線

2022-03-25 19:00:33

與 Python 一樣,Go 語言也有空白識別符號。

1.什麼是空白識別符號

空白識別符號是未使用的值的預留位置。它由下劃線(_)表示。由於空白識別符號沒有名稱,因此它們也被稱為匿名預留位置。

在 Go 語言中, 不允許宣告未使用的變數或匯入語句。也就是說,我們無法宣告變數並將其留下未使用。同樣,如果您匯入一個包,那麼也必須使用它。

這個時候就需要一個空白識別符號。

2.未使用的賦值變數

如果 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
}

3.未知的結構體

可以利用 ​​_​​ 分配任何東西:

var _ I = T{}

無法存取此變數,以便將從生成的程式中優化。但是,如果 T 型別未分配給介面 ​​I​​ ,則可能會導致編譯錯誤。因此,在這種情況下,它被用作關於型別的靜態斷言。

4.未使用的包

在 Go 中,如果你匯入一個包,那麼你必須使用它,否則會出現編譯器錯誤。

imported and not used 「<package name>」

空白識別符號可用於解決此編譯器錯誤。

有兩種方法可以使用空白識別符號來解決未使用的包錯誤,如下所示:

第一種:宣告一個全域性空白識別符號(在 ​​main()​​ 函數之前),該識別符號從未使用的包中存取符號,例如下面程式碼中的 Open:

import "os"
var _ = os.Open
func main() {
}

第二種:在未使用的包前加上一個空白識別符號,

如下所示:

import _ "os"

func main(){
}

空白識別符號通過避免在整個程式碼中使用未使用的變數宣告,使程式碼更具可讀性。

5.總結

Golang 中任何宣告但未使用的包和變數都會引發錯誤。這一規則使得我們的程式碼保持乾淨和輕量。

  • 有時如果需要在未來使用並提前匯入一些軟體包,就可以使用空白識別符號。
  • 有時候函數會返回多個引數,但是我們只需要使用其中一個變數的時候,就可以通過空白標誌符來進行接收。

到此這篇關於Go 中的空白識別符號下劃線的文章就介紹到這了,更多相關Go 空白識別符號內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com