亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

golang中iota的用法小結

 更新時間:2025年03月04日 10:17:03   作者:SLM的智慧  
iota是Go語言中的一個預定義標識符,用于表示const聲明塊中每個常量的偏移值,本文主要介紹了golang中iota的用法小結,具有一定的參考價值,感興趣的可以了解一下

iota是Go語言的一個預定義標識符,它表示的是const聲明塊(包括單行聲明)中每個常量所處位置在塊中的偏移值(從零開始)。同時,每一行中的iota自身也是一個無類型常量,可以像無類型常量那樣自動參與不同類型的求值過程,而無須對其進行顯式類型轉換操作。

1.使用實例說明

// $GOROOT/src/sync/mutex.go (go 1.12.7)
const (
    mutexLocked = 1 << iota
    mutexWoken
    mutexStarving
    mutexWaiterShift = iota
    starvationThresholdNs = 1e6
)

iota在第一行出現,iota在第一行即位0,在第二行即位1,在第三行即位2,在第四行即位3…

mutexLocked = 1 << iota:這里是const聲明塊的第一行,iota的值是該行在const塊中的偏移量,因此iota的值為0,我們得到mutexLocked這個常量的值為1 << 0,即1。mutexWoken:這里是const聲明塊的第二行,由于沒有顯式的常量初始化表達式,根據const聲明塊的“隱式重復前一個非空表達式”機制,該行等價于mutexWoken = 1 <<iota。由于該行是const塊中的第二行,因此偏移量iota的值為1,我們得到mutexWoken這個常量的值為1<< 1,即2。mutexStarving:該常量同mutexWoken,該行等價于mutexStarving = 1 << iota,由于在該行的iota的值為2,因此我們得到mutexStarving這個常量的值為 1 << 2,即4。mutexWaiterShift = iota:這一行的常量初始化表達式與前三行不同,由于該行為第四行,iota的偏移值為3,因此mutexWaiterShift的值就為3。位于同一行的iota即便出現多次,其值也是一樣的

2.常用方式

const (
    _ = iota
    Blue
    Black
    Red
    Yellow
)

默認Blue=1,之后如果新加其他常量,不需要賦值,會自動累加

參考圖書《Go語言精進之路》,可以抽空翻翻,提高基礎知識,也會有新的收獲

到此這篇關于golang中iota的用法小結的文章就介紹到這了,更多相關golang iota用法內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Go正則表達式匹配字符串,替換字符串方式

    Go正則表達式匹配字符串,替換字符串方式

    介紹了Go語言中使用正則表達式進行字符串匹配和替換的方法,包括匹配單個子字符串和所有子字符串,個人經驗分享,旨在為讀者提供實用的編程技巧,并鼓勵大家支持腳本之家
    2025-02-02
  • 一些關于Go程序錯誤處理的相關建議

    一些關于Go程序錯誤處理的相關建議

    錯誤處理在每個語言中都是一項重要內容,眾所周知,通常寫程序時遇到的分為異常與錯誤兩種,Golang中也不例外,這篇文章主要給大家介紹了一些關于Go程序錯誤處理的相關建議,需要的朋友可以參考下
    2021-09-09
  • 關于Golang獲取當前項目絕對路徑的問題

    關于Golang獲取當前項目絕對路徑的問題

    這篇文章主要介紹了Golang獲取當前項目絕對路徑的問題,通常的做法是go run用于本地開發(fā),用一個命令中快速測試代碼確實非常方便;在部署生產環(huán)境時,我們會通過go build構建出二進制文件然后上傳到服務器再去執(zhí)行,那么會產生什么問題呢?感興趣的朋友一起看看吧
    2022-04-04
  • 基于Golang開發(fā)一個輕量級登錄庫/框架

    基于Golang開發(fā)一個輕量級登錄庫/框架

    幾乎每個項目都會有登錄,退出等用戶功能,而登錄又不單僅僅是登錄,我們要考慮很多東西。所以本文就來用Golang開發(fā)一個輕量級登錄庫/框架吧
    2023-05-05
  • golang數組內存分配原理

    golang數組內存分配原理

    這篇文章主要介紹了golang數組內存分配原理,數組是內存中一片連續(xù)的區(qū)域,在聲明時需要指定長度,文章圍繞主題展開詳細的內容介紹,感興趣的小伙伴可以參考一下
    2022-06-06
  • GoLang sync.Pool簡介與用法

    GoLang sync.Pool簡介與用法

    這篇文章主要介紹了GoLang sync.Pool簡介與用法,Pool是可伸縮、并發(fā)安全的臨時對象池,用來存放已經分配但暫時不用的臨時對象,通過對象重用機制,緩解GC壓力,提高程序性能
    2023-01-01
  • Go語言實現一個Http Server框架(二) Server的抽象

    Go語言實現一個Http Server框架(二) Server的抽象

    上一篇文章對http庫的基本使用做了說明,這篇文章主要介紹了如何實現一個簡單地httpServer,文中代碼示例非常詳細,感興趣的朋友可以參考下
    2023-04-04
  • Golang中的map操作方法詳解

    Golang中的map操作方法詳解

    這篇文章主要給大家介紹了關于Golang中map操作方法的相關資料,map是一種無序的基于key-value的數據結構,Go語言中map是引用類型,必須初始化才能使用,需要的朋友可以參考下
    2023-11-11
  • Golang必知必會之Go?Mod命令詳解

    Golang必知必會之Go?Mod命令詳解

    go mod可以使項目從GOPATH的強制依賴中獨立出來,也就是說你的項目依賴不再需要放在在GOPATH下面了,下面這篇文章主要給大家介紹了關于Golang必知必會之Go?Mod命令的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-07-07
  • 學會提升Go語言編碼效率技巧拒絕加班!

    學會提升Go語言編碼效率技巧拒絕加班!

    這篇文章主要為大家介紹了Go語言編碼效率提升技巧詳解,學會了從此拒絕加班,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12

最新評論