主頁 > 知識庫 > golang的空標識符理解

golang的空標識符理解

熱門標簽:地圖標注的汽車標 南通如皋申請開通400電話 中國地圖標注省會高清 江西轉化率高的羿智云外呼系統 廣州呼叫中心外呼系統 高德地圖標注口訣 西部云谷一期地圖標注 浙江高速公路地圖標注 學海導航地圖標注

空白符(blank identifier)

空白符的產生可能是因為go不允許變量聲明了但不使用。既然不想使用,何必聲明變量呢,那就將變量用空白符代替,反正空白符就是用來拋棄的。

我們有時候看到這樣的golang代碼:

import _ "net/http/pprof"

for _, c := range "11234" {
  log.Println(c)
}

var _ io.Reader = (* XXX)(nil)  //全局變量

var _ = Suite(HelloWorldTest{})

代碼中_很獨特的樣子:說是變量吧,但它在同一作用域可以多次被定義;說是類型吧,寫法上又不像。

那它到底是何方神圣呢?

其實官方文檔有定義和介紹,它叫Black Identifier,中文翻譯為空標識符??諛俗R符不是普通變量,而是語言提供的一種特殊處理,它能避免某個變量起名,同時也可以在賦值時舍棄某個值。

空標識符一般用于4種場合,正對應上面例子的4段代碼。

1. 引入某包只執行包中的init函數,但本包沒有直接引用該包任何變量或函數,使用import _避免編譯錯誤;

2. 函數有多返回值,忽略其中某些返回值。類似c++11 std::ignore在std::tie中的運用;

3. 編譯期檢查,比如某類型有沒有實現某接口的檢查;

4. 想在main之前執行某段代碼,當然用init也可以。

示例 blank_identifier.go

package main
import "fmt"
func main() {
  var i1 int
  var f1 float32
  i1, _, f1 = ThreeValues()
  fmt.Printf("The int: %d, the float: %f \n", i1, f1)
}
func ThreeValues() (int, int, float32) {
  return 5, 6, 7.5
}

輸出結果:

The int: 5, the float: 7.500000

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內容請查看下面相關鏈接

您可能感興趣的文章:
  • go for range坑和閉包坑的分析
  • strings命令分析淺談Go和C++編譯時的一點小區別
  • go panic時如何讓函數返回數據?
  • go代碼實現買房貸款月供計算的方法
  • linux下搭建go環境的安裝配置講解
  • 為什么Go語言把類型聲明放在后面?
  • 用go gin server來做文件上傳服務
  • 使用go gin來操作cookie的講解
  • 在go中使用omitempty的代碼實例
  • go for range遍歷二維數組的示例

標簽:吐魯番 保定 貴州 德宏 許昌 常州 曲靖 東營

巨人網絡通訊聲明:本文標題《golang的空標識符理解》,本文關鍵詞  golang,的,空,標識符,理解,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《golang的空標識符理解》相關的同類信息!
  • 本頁收集關于golang的空標識符理解的相關信息資訊供網民參考!
  • 推薦文章
    2020久久精品亚洲|久久窝窝国产精品午夜看片|亚洲 日韩 激情 无码 中出|国产精品乱码高清在线