最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Go語言const&iota的實現(xiàn)示例

 更新時間:2026年04月13日 09:45:57   作者:Go_error  
本文主要介紹了Go語言const&iota的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

part 1.

要明白 iota 首先需要知道:Go 的 const 語法提供了“隱式重復前一個非空表達式”的機制。

const (
 A = 1       // 1
 B           // 1
 C           // 1
)

常量定義的后兩行沒有顯式給予初始賦值,Go 編譯器將為其隱式使用第一行的表達式。

part 2.

iota 是 Go 語言的一個預定義標識符,它表示的含義是 const 聲明塊中每個常量所處位置在塊中的偏移值,從0開始(也可理解為 const 語句塊中的行索引)。

// 一般寫法
const (
 Sunday    = 0
 Monday    = 1
 Tuesday   = 2
 Wednesday = 3
 Thursday  = 4
 Friday    = 5
 Saturday  = 6
)
// iota 寫法
const (
 Sunday = iota
 Monday
 Tuesday
 Wednesday
 Thursday
 Friday
 Saturday
)

來看下面這個例子:

const (
 A = iota - 1 // -1  由于這里是 const 聲明塊的第一行,iota 的值是該行在 const 塊中的偏移,因此 iota 的值為 0
 B            //  0
 C            //  1
 D = iota     //  3  由于該行為第四行,iota 的偏移值為 3
 E            //  4
)

略過 iota = 0,從 iota = 1 開始正式定義枚舉常量:

const (
 _ = iota
 A            // 1
 B            // 2
 C            // 3
)

位于同一行的 iota 即便出現(xiàn)多次,其值也是一樣的:

const (
 _      = iota
 A, PI1 = iota, 3.14 / (2 * iota) // 1, 3.14 / (2 * 1)
 B, PI2                           // 2, 3.14 / (2 * 2)
 C, PI3                           // 3, 3.14 / (2 * 3)
)

略過某一行:

const (
 _ = iota
 A            // 1
 B            // 2
 C            // 3
 _
 E            // 5
)

使用有類型枚舉常量保證類型安全:

如果要嚴格考慮類型安全,可以定義有類型枚舉常量,比如上述代碼的 Sunday~Saturday:

type Weekday int
const (
 Sunday Weekday = iota
 Monday
 Tuesday
 Wednesday
 Thursday
 Friday
 Saturday
)

這樣,后續(xù)要使用 Sunday~Saturday 這些有類型枚舉常量,必須匹配 Weekday 類型的變量。

到此這篇關于Go語言const&iota的實現(xiàn)的文章就介紹到這了,更多相關Go語言const iota內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 淺談Golang是如何讀取文件內容的(7種)

    淺談Golang是如何讀取文件內容的(7種)

    這篇文章主要介紹了淺談Golang是如何讀取文件內容的,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-05-05
  • 詳解Golang中errors包如何返回自定義error類型

    詳解Golang中errors包如何返回自定義error類型

    這篇文章主要為大家詳細介紹了Golang中errors包如何返回自定義error類型,文中的示例代碼簡潔易懂,有需要的小伙伴可以跟隨小編一起學習一下
    2023-09-09
  • Go語言net包RPC遠程調用三種方式http與json-rpc及tcp

    Go語言net包RPC遠程調用三種方式http與json-rpc及tcp

    這篇文章主要為大家介紹了Go語言net包RPC遠程調用三種方式分別使用http與json-rpc及tcp的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-11-11
  • jenkins構建go及java項目的方法

    jenkins構建go及java項目的方法

    這篇文章主要介紹了jenkins構建go及java項目,本文通過圖文實例相結合給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值了,需要的朋友可以參考下
    2021-04-04
  • Go?slice切片make生成append追加copy復制示例

    Go?slice切片make生成append追加copy復制示例

    這篇文章主要為大家介紹了Go使用make生成切片、使用append追加切片元素、使用copy復制切片使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • Go anko實現(xiàn)支持腳本語言

    Go anko實現(xiàn)支持腳本語言

    anko是一個可以讓 Go 項目支持腳本語言的小工具,換句話說,就是可以給 Go 項目加點“腳本魔法”,下面就跟隨小編一起來學習一下他的具體使用吧
    2024-11-11
  • Golang安裝和使用protocol-buffer流程介紹

    Golang安裝和使用protocol-buffer流程介紹

    這篇文章主要介紹了Golang安裝和使用protocol-buffer過程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-09-09
  • mac下golang安裝了windows編譯環(huán)境后編譯變慢

    mac下golang安裝了windows編譯環(huán)境后編譯變慢

    這篇文章主要介紹了mac下golang安裝了windows編譯環(huán)境后編譯變慢的處理方法,非常的簡單,有相同問題的小伙伴可以參考下。
    2015-04-04
  • Golang服務的請求調度的實現(xiàn)

    Golang服務的請求調度的實現(xiàn)

    Golang服務請求調度是一種使用Go語言實現(xiàn)的服務請求管理方法,本文主要介紹了Golang服務的請求調度的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2023-08-08
  • golang 中獲取字符串個數(shù)的方法

    golang 中獲取字符串個數(shù)的方法

    這篇文章主要介紹了golang 中獲取字符串個數(shù) ,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-08-08

最新評論

古田县| 偏关县| 澄城县| 岳西县| 洱源县| 沙河市| 北流市| 益阳市| 始兴县| 临清市| 宜城市| 郎溪县| 罗田县| 鸡东县| 荆门市| 冕宁县| 沿河| 普安县| 定兴县| 凌源市| 新巴尔虎左旗| 祁东县| 芦溪县| 全椒县| 邮箱| 鹤峰县| 都兰县| 介休市| 河津市| 宁河县| 贡嘎县| 胶州市| 许昌县| 永嘉县| 房产| 黑山县| 松桃| 项城市| 湘西| 中西区| 墨玉县|