iota
是go语言的常量计数器,只能在常量的表达式中使用。
iota
在const
关键字出现时将被重置为0。const中每新增一行常量声明将使iota
计数一次(iota可理解为const语句块中的行索引)。 使用iota能简化定义,在定义枚举时很有用。
举个例子:
const(
a1=iota //0
//定义常量时不给定值,表示和上一行的值相等,所以下一行相当于"a2=iota'
//并且iota在新增一行常量声明时会+1
a2 //1
a3 //2
a4 //3
)
常见的iota示例:
使用_
跳过某些值:
const(
b1=iota //0
b2 //1
_ //2
b4 //3
)
iota
声明中间插队
const (
c1 = iota //0
c2 = 100 //100 iota=1
c3 = iota //2
c4 //3
)
const c5 = iota //遇到新的常量声明 iota重置为0
多个常量声明在一行:
const(
//ioat只有在const声明中新增一行时才+1;无论这一行有几个常量
d1,d2=ioat+1,ioat+2
d3,d4=ioat+1,ioat+2
)
d1=1
d2=2
d3=2
d4=3
定义数量级:
const(
_ =ioat //ioat=0
KB = 1 << (10*ioat) //ioat=1
MB = 1 << (10*ioat) //ioat=2
GB = 1 << (10*ioat) //...
TB = 1 << (10*ioat)
PB = 1 << (10*ioat)
)
<<
为左移操作符(针对其二进制位)
例如:1的二进制位左移10位的结果是:10000000000,转化为十进制数就是:1024