iota在golang中的應(yīng)用-創(chuàng)新互聯(lián)

iota是golang語言的常量計數(shù)器,只能在常量的表達式中使用。常量是一個簡單值的標識符,在程序運行時,不會被修改的量。常量中的數(shù)據(jù)類型只可以是布爾型、數(shù)字型(整數(shù)型、浮點型和復(fù)數(shù))和字符串型。

十年的日土網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。網(wǎng)絡(luò)營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整日土建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)公司從事“日土網(wǎng)站設(shè)計”,“日土網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。

iota在const關(guān)鍵字出現(xiàn)時將被重置為0(const內(nèi)部的第一行之前),const中每新增一行常量聲明將使iota計數(shù)一次(iota可理解為const語句塊中的行索引)。

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

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

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

本文中的Sprintf(“%f”,x)并不會因為定義在String方法內(nèi)而引起無窮循環(huán)bug,因為%f不會去嘗試調(diào)用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))
}

以上就是golang iota從幾開始的詳細內(nèi)容,更多請關(guān)注創(chuàng)新互聯(lián)其它相關(guān)文章!

分享名稱:iota在golang中的應(yīng)用-創(chuàng)新互聯(lián)
分享路徑:http://muchs.cn/article46/dsiihg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊、關(guān)鍵詞優(yōu)化、網(wǎng)站內(nèi)鏈、云服務(wù)器動態(tài)網(wǎng)站、品牌網(wǎng)站設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)