站長資訊網
        最全最豐富的資訊網站

        golang iota從幾開始

        golang iota從幾開始

        iota是golang語言的常量計數器,只能在常量的表達式中使用。

        iota在const關鍵字出現時將被重置為0(const內部的第一行之前),const中每新增一行常量聲明將使iota計數一次(iota可理解為const語句塊中的行索引)。 (推薦學習:go)

        使用iota能簡化定義,在定義枚舉時很有用。

        在常量定義中,iota可以方便的迭代一個值從0以步長1遞增,0,1,2,3,4,5…

        本例以文件大小的格式2的10次方進位一次為依據,將KB為1左移10位,MB左移20位。。。

        本文中的Sprintf(“%f”,x)并不會因為定義在String方法內而引起無窮循環bug,因為%f不會去嘗試調用String()

        package main import (     "fmt" ) type ByteSize float64 const (     _ = iota     KB ByteSize = 1 << (10*iota)     MB     GB     TB     PB     EB     ZB     YB ) func (b ByteSize) String() string{     switch {         case b >= YB:             return fmt.Sprintf("%.2fYB",b/YB)         case b >= ZB:             return fmt.Sprintf("%.2fZB",b/ZB)         case b >= EB:             return fmt.Sprintf("%.2fEB",b/EB)         case b >= PB:             return fmt.Sprintf("%.2fPB",b/PB)         case b >= TB:             return fmt.Sprintf("%.2fTB",b/TB)         case b >= GB:             return fmt.Sprintf("%.2fGB",b/GB)         case b >= MB:             return fmt.Sprintf("%.2fMB",b/MB)         case b >= KB:             return fmt.Sprintf("%.2fKB",b/KB)      }     return fmt.Sprintf("%.2fB",b) }  func main() {     fmt.Println(ByteSize(1e10)) }

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 精品国产亚洲一区二区三区| 国产精品久久成人影院| 人妻少妇精品视频二区| 欧美大片日韩精品| 久久精品人成免费| 亚洲日韩欧美制服精品二区| 欧美一区二区精品久久| 精品人妻无码一区二区色欲产成人| 精品亚洲一区二区三区在线观看| 久草视频在线这里精品| 久久夜色精品国产噜噜麻豆| 免费精品国产自产拍在线观看| 91久久精品国产91性色也| 国产精品久久国产精品99盘| 日韩人妻精品无码一区二区三区| 日本欧美国产精品第一页久久| 国产精品伦理久久久久久| 真实国产乱子伦精品免费| 久久成人精品视频| 欧美日韩精品乱国产538| 国产精品v欧美精品v日韩精品 | 538国产精品一区二区在线| 日韩精品区一区二区三VR| 亚洲色精品88色婷婷七月丁香| 欧美午夜精品一区二区三区91| 久久国产成人精品国产成人亚洲| 精品水蜜桃久久久久久久| 精品国产AⅤ一区二区三区4区| 国产精品污WWW一区二区三区| 国产精品久久久99| 国产亚洲精品激情都市| 精品国产亚洲男女在线线电影| 国产精品乱伦| 久久精品中文字幕一区| 久久精品亚洲乱码伦伦中文 | 亚洲午夜精品久久久久久人妖 | 日本午夜精品理论片A级APP发布| 久久亚洲精品无码播放| 青青草97国产精品免费观看| 中文字幕av日韩精品一区二区| 亚洲AV乱码久久精品蜜桃|