主頁(yè) > 知識(shí)庫(kù) > golang的空標(biāo)識(shí)符理解

golang的空標(biāo)識(shí)符理解

熱門標(biāo)簽:AI電銷 服務(wù)外包 呼叫中心市場(chǎng)需求 百度競(jìng)價(jià)排名 Linux服務(wù)器 網(wǎng)站排名優(yōu)化 地方門戶網(wǎng)站 鐵路電話系統(tǒng)

空白符(blank identifier)

空白符的產(chǎn)生可能是因?yàn)間o不允許變量聲明了但不使用。既然不想使用,何必聲明變量呢,那就將變量用空白符代替,反正空白符就是用來(lái)拋棄的。

我們有時(shí)候看到這樣的golang代碼:

import _ "net/http/pprof"

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

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

var _ = Suite(HelloWorldTest{})

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

那它到底是何方神圣呢?

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

空標(biāo)識(shí)符一般用于4種場(chǎng)合,正對(duì)應(yīng)上面例子的4段代碼。

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

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

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

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

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

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

標(biāo)簽:銅川 仙桃 湘潭 蘭州 黃山 衡水 崇左 湖南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《golang的空標(biāo)識(shí)符理解》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266