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

Go??iota?常量基本語法介紹

 更新時間:2022年06月02日 10:14:22   作者:腦子進煎魚了  
這篇文章主要介紹了Go?為什么要設計?iota?常量,我們介紹了 Go 中 iota 的基本語法。同時基于歷史資料針對 iota 到底是什么,為什么要這么叫,又有什么用進行了一番研究,需要的朋友可以參考下

Go 語言中有一個非常有特色的東西,那就是 iota 常量。經(jīng)過某魚的不完全統(tǒng)計,許多 Go 開發(fā)者都是由 PHP、Java、C++、Python 等轉(zhuǎn)型過來,對此還是挺好奇的。

Go 語法

在 Go 中枚舉常量是使用 iota 枚舉器創(chuàng)建的,在功能上,iota 關鍵字表示從 0 開始的整數(shù)常量;在作用上可以簡化使用自動遞增數(shù)字的常量定義,非常方便。

以前定義一個枚舉值:

const (
    a = 0
    b = 1
    c = 2
)

Go 有了 iota 關鍵字后:

const (
    a = iota
    b
    c
)

對應的值結(jié)果:

a=0
b=1
c=2

甚至還可以跳著來:

const (
 a = iota
 _
 b
 c
)

對應的值結(jié)果:

a=0
b=2
c=3

也可以玩出花來:

const (
 bit0, mask0 = 1 << iota, 1<<iota - 1
 bit1, mask1                           
 _, _                                  
 bit3, mask3                          
)

對應的值結(jié)果:

bit0 == 1, mask0 == 0  (iota == 0)
bit1 == 2, mask1 == 1  (iota == 1)
                       (iota == 2, unused)
bit3 == 8, mask3 == 7  (iota == 3)

設計思考

對 iota 有了一定的基本了解后,開始進入我們的主題,和煎魚一起發(fā)散好奇心。

  • 為什么叫 iota,是什么的簡稱嗎?

  • Go 為什么需要有 iota?

為什么叫 iota

實際上 iota 就是全名,在 stackoverflow 的 提問 [1] 中已經(jīng)有許多社區(qū)朋友探討過(果然好奇的小伙伴挺多的)。

本質(zhì)上 ”iota“ 是希臘字母表的第 9 個字母。它是數(shù)學符號的典型,代表一個非常小的東西。

常用于以下的場景:

  • 作為和與算法中的迭代器。

  • 作為下標索引。

  • 用于復數(shù)的虛數(shù)部分。

除了 Go 以外,在 APL、C++,又或是 Scheme 均有有 iota 常量的存在(設計),可以給到大家使用。

Scheme iota 的簽名如下:

iota count [start step]

作用是返回一個包含計數(shù)數(shù)字的列表,從起始點開始,每次增加步長。默認的開始是0,默認的步驟是 1。

例如:

(iota 6)        ? (0 1 2 3 4 5)
(iota 4 2.5 -2) ? (2.5 0.5 -1.5 -3.5)

其實 iota 已經(jīng)是迭代器的一個 約定式命名 了,可以認為是也業(yè)內(nèi)通識。

為什么需要有

在《 The Go Programming Language Specification [2] 》中存在著對 iota 的明確定義和說明。

如下:

在一個常量聲明中, 預先聲明的標識符 iota 代表連續(xù)的無類型的整數(shù)常量。它的值是該常量聲明中各 ConstSpec 的索引 ,從0開始。

提取核心意義:Go 中的 iota 是 ConstSpec 索引,也就是 填補 的是連續(xù)的無類型整數(shù)常量的位置。

因此 Go 中有它的一席位置。

總結(jié)

在這篇文章中,我們介紹了 Go 中 iota 的基本語法。同時基于歷史資料針對 iota 到底是什么,為什么要這么叫,又有什么用進行了一番研究。

也需要思考另外一個問題,并不是每一門語言都有 iota。那沒有 iota 的話會怎么樣,不存在是否也有其合理性呢?

參考資料

[1]

提問: https://stackoverflow.com/questions/31650192/whats-the-full-name-for-iota-in-golang

[2]

The Go Programming Language Specification: https://go.dev/ref/spec#Iota

到此這篇關于Go 為什么要設計 iota 常量的文章就介紹到這了,更多相關Go  iota 常量內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Golang中的Unicode與字符串示例詳解

    Golang中的Unicode與字符串示例詳解

    這篇文章主要給大家介紹了關于Golang中Unicode與字符串的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Golang具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2020-05-05
  • Go語言中高效地處理集合的方法小結(jié)

    Go語言中高效地處理集合的方法小結(jié)

    在?Go?語言中,處理集合(如切片、映射等)時,可以通過多種方式提高效率,本文為大家整理了一些常見的方法,有需要的小伙伴可以了解一下
    2025-02-02
  • Go中string與[]byte高效互轉(zhuǎn)的方法實例

    Go中string與[]byte高效互轉(zhuǎn)的方法實例

    string與[]byte經(jīng)常需要互相轉(zhuǎn)化,普通轉(zhuǎn)化會發(fā)生底層數(shù)據(jù)的復制,下面這篇文章主要給大家介紹了關于Go中string與[]byte高效互轉(zhuǎn)的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2021-09-09
  • 8個Elasticsearch高頻面試題和答案整理

    8個Elasticsearch高頻面試題和答案整理

    這篇文章為大家精選了8道Elasticsearch高頻面試題和答案,并且給出了這些知識點的應用場景、也給出了解決這些問題的思路,希望對大家有所幫助
    2023-06-06
  • go并發(fā)利器sync.Once使用示例詳解

    go并發(fā)利器sync.Once使用示例詳解

    這篇文章主要為大家介紹了go并發(fā)利器sync.Once使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • 使用Go語言實現(xiàn)找出兩個大文件中相同的記錄

    使用Go語言實現(xiàn)找出兩個大文件中相同的記錄

    這篇文章主要為大家詳細介紹了使用Go語言實現(xiàn)找出兩個大文件中相同的記錄的相關知識,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-10-10
  • Go中map數(shù)據(jù)類型3點小知識

    Go中map數(shù)據(jù)類型3點小知識

    這篇文章主要介紹了Go中map數(shù)據(jù)類型3點小知識,在go中使用map時可能會用本文中的小知識,需要的朋友可以參考下
    2014-10-10
  • Go語言中函數(shù)可變參數(shù)(Variadic Parameter)詳解

    Go語言中函數(shù)可變參數(shù)(Variadic Parameter)詳解

    在Python中,在函數(shù)參數(shù)不確定數(shù)量的情況下,可以動態(tài)在函數(shù)內(nèi)獲取參數(shù)。在Go語言中,也有類似的實現(xiàn)方式,本文就來為大家詳細講解一下
    2022-07-07
  • 如何利用Golang寫出高并發(fā)代碼詳解

    如何利用Golang寫出高并發(fā)代碼詳解

    今天領導問起為什么用Golang,同事回答語法簡單,語言新,支持高并發(fā)。那高并發(fā)到底如何實現(xiàn),下面這篇文章主要給大家介紹了關于如何利用Golang寫出高并發(fā)代碼的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-09-09
  • Go語言中的格式化輸出占位符的用法詳解

    Go語言中的格式化輸出占位符的用法詳解

    在 Go 語言中,格式化輸出是一個非常常用的功能,特別是在處理字符串、數(shù)字和其他數(shù)據(jù)類型時,本文將詳細介紹 Go 語言中常用的格式化占位符及其用法,希望對大家有所幫助
    2024-10-10

最新評論

垣曲县| 永昌县| 时尚| 洛川县| 武平县| 呼和浩特市| 涿州市| 台北县| 丹东市| 桓仁| 西青区| 额济纳旗| 阳东县| 竹北市| 广水市| 诸城市| 高雄市| 石城县| 迁西县| 辽阳市| 荣成市| 涟源市| 昭苏县| 平昌县| 广宁县| 清水县| 碌曲县| 开化县| 财经| 榕江县| 遵化市| 延长县| 海口市| 双城市| 临夏县| 松原市| 剑河县| 遂昌县| 都匀市| 天镇县| 那坡县|