濮阳杆衣贸易有限公司

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

golang的空標識符理解

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

空白符(blank identifier)

空白符的產(chǎn)生可能是因為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種場合,正對應(yīng)上面例子的4段代碼。

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

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

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

4. 想在main之前執(zhí)行某段代碼,當然用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
}

輸出結(jié)果:

The int: 5, the float: 7.500000

總結(jié)

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

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

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

巨人網(wǎng)絡(luò)通訊聲明:本文標題《golang的空標識符理解》,本文關(guān)鍵詞  golang,的,空,標識符,理解,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《golang的空標識符理解》相關(guān)的同類信息!
  • 本頁收集關(guān)于golang的空標識符理解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    通山县| 安徽省| 板桥市| 探索| 凭祥市| 双辽市| 嫩江县| 南昌县| 衡南县| 宣威市| 孟州市| 东乡县| 阳信县| 白沙| 靖州| 江达县| 巧家县| 五家渠市| 隆子县| 山东省| 扎赉特旗| 邓州市| 富民县| 宜春市| 吉林省| 华安县| 如皋市| 吴桥县| 宁陵县| 双江| 泸西县| 喀喇沁旗| 全州县| 米易县| 贵南县| 乐安县| 浦县| 康乐县| 伊宁县| 云南省| 兴隆县|