Go语言基础之iota

iotago语言的常量计数器,只能在常量的表达式中使用。 iotaconst关键字出现时将被重置为0const中每新增一行常量声明将使iota计数一次(iota可理解为const语句块中的行索引)。 使用iota能简化定义,在定义枚举时很有用。

举个例子:

    const (
            n1 = iota //0
            n2        //1
            n3        //2
            n4        //3
        )

使用_跳过某些值

    const (
            n1 = iota //0
            n2        //1
            _
            n4        //3
        )

iota声明中间插队

    const (
            n1 = iota //0
            n2 = 100  //100
            n3 = iota //2
            n4        //3
        )
    const n5 = iota //0

定义数量级 (这里的<<表示左移操作,1<<10表示将1的二进制表示向左移10位,也就是由1变成了10000000000,也就是十进制的1024。同理2<<2表示将2的二进制表示向左移2位,也就是由10变成了1000,也就是十进制的8。)

左移操作<< 左移n位就是乘以2的n次方

右移操作>>右移n位就是除以2的n次方

    const (
            _  = iota
            KB = 1 << (10 * iota)  = 1*2的0次方
            MB = 1 << (10 * iota)  = 1*2的10次方
            GB = 1 << (10 * iota)  = 1*2的20次方
            TB = 1 << (10 * iota)  = 1*2的30次方
            PB = 1 << (10 * iota)
        )

多个iota定义在一行

    const (
            a, b = iota + 1, iota + 2 //1,2
            c, d                      //2,3
            e, f                      //3,4
        )
posted @ 2022-04-19 22:14  我要的我现在就要  阅读(671)  评论(0)    收藏  举报