濮阳杆衣贸易有限公司

主頁 > 知識庫 > 淺談Go語言的空標(biāo)示符

淺談Go語言的空標(biāo)示符

熱門標(biāo)簽:電銷機(jī)器人可以補(bǔ)救房產(chǎn)中介嗎 ?兓? 電梯外呼訪客系統(tǒng) 最短的地圖標(biāo)注 騰訊外呼系統(tǒng)價格 浙江人工智能外呼管理系統(tǒng) 谷歌便利店地圖標(biāo)注 百度地圖標(biāo)注搜索關(guān)鍵詞 成都呼叫中心外呼系統(tǒng)平臺

前言

Go語言是一門很簡單的語言,它為我們做了很多的決定,比如很多在其他語言中不推薦使用的編碼風(fēng)格在Go是不允許的。比如: 變量或者包聲明或?qū)牒鬀]有使用是無法編譯通過的。 它的編譯只有Fatal沒有Warning,這對于代碼質(zhì)量是很有好處的。在其他語言中 最佳實踐也是編寫warning-free的代碼。Go把這個最佳實踐放到了語言級別。

Go中的空標(biāo)示符(blank indentifier):  _

剛開始在看到Go中的空標(biāo)示符是以為它只是一種約定,因為下劃線看起來比那么的 顯眼,而普通變量又不太可能只使用一個下劃線來命名,在其他語言中我們不想使用 一個變量的話很簡單忽略之就可以了,而如果對一個函數(shù)的返回值不感興趣的話, 不對返回值賦值即可。

先記錄下結(jié)論:空標(biāo)示符不是一個普通變量或標(biāo)示符,而是一個特殊的標(biāo)示符, 對于這種類型的標(biāo)示符綁定表達(dá)式時不進(jìn)行真正的綁定。

這是什么意思呢?也就說比如將一個值賦值給空操作符是不會進(jìn)行值綁定的。

package main

import ( 
  _ "io" // 如果不重名名包為_ 而在代碼中沒有使用這個包會編譯不通過
      // 這樣導(dǎo)入一個包是有副作用的,導(dǎo)入一個包后會執(zhí)行包的init()方法,
      // 如果只是為了避免編譯不通過而綁定到_是不推薦的做法。
   "fmt"
)

func getMulti() (int, int) { 
  return 3, 4
}

func main() { 
  _ = 20   // 綁定沒有作用,不會報錯
  // _ := 10 // 編譯不通過,因為表達(dá)式左邊沒有一個有效的新的標(biāo)示符
        // no new variables on left side of :=

  x, _ := getMulti()

  fmt.Printf("%d\n", x)
  // fmt.Printf("%d\n", _)  這樣是編譯不通過的,因為_并不能被賦值
  //             編譯 "cannot use _ as value"
}

總結(jié)

     空標(biāo)示符不是普通標(biāo)示符,是一個語言級別的標(biāo)示符,通常用來:

     顯式的忽略函數(shù)或其他多值賦值表達(dá)式中的某些的返回值,多值表達(dá)式通常有:

          1、函數(shù)的多個返回值

          2、range循環(huán)中的key-value值

          3、多值賦值,比如: x, y, z := 10, 20, 30, 不過這種情況比較小

或者導(dǎo)入包不使用包而只利用包的初始化函數(shù)的副作用。但是不推薦用這種方式 ,來繞過因為包未被使用而編譯不通過的問題

本文這里只是做一個筆記,其實Go的語言規(guī)范中寫的還是很詳細(xì)的。對于一些有疑惑的地方一翻手冊就會發(fā)現(xiàn)答案。這也是一門語言小的好處,歧義會非常少。希望本文對大家學(xué)習(xí)Go語言有所幫助。

您可能感興趣的文章:
  • Golang極簡入門教程(一):基本概念
  • 理解Golang中的數(shù)組(array)、切片(slice)和map
  • 在Golang中使用C語言代碼實例
  • golang語言中for循環(huán)語句用法實例
  • Golang極簡入門教程(四):編寫第一個項目
  • ubuntu下搭建Go語言(golang)環(huán)境
  • golang使用正則表達(dá)式解析網(wǎng)頁
  • Golang實現(xiàn)的聊天程序服務(wù)端和客戶端代碼分享
  • golang操作mongodb的方法

標(biāo)簽:宜昌 雅安 紹興 七臺河 盤錦 上海 眉山 邢臺

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《淺談Go語言的空標(biāo)示符》,本文關(guān)鍵詞  淺談,語言,的,空,標(biāo)示符,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《淺談Go語言的空標(biāo)示符》相關(guān)的同類信息!
  • 本頁收集關(guān)于淺談Go語言的空標(biāo)示符的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    牡丹江市| 张家口市| 庄浪县| 定边县| 大邑县| 黑水县| 灵丘县| 德江县| 庆安县| 芦山县| 岳西县| 美姑县| 连南| 宁波市| 稻城县| 台南市| 乌兰察布市| 钟山县| 象州县| 昌都县| 体育| 尚义县| 饶河县| 阳信县| 博爱县| 德清县| 平陆县| 晋江市| 阿拉善右旗| 厦门市| 精河县| 方城县| 东光县| 武冈市| 古交市| 青川县| 报价| 四平市| 安庆市| 石棉县| 林芝县|