iota初始值为1,之后按一递增
1.例子1:
const (FlagUp Flags = 1 << iota
FlagBroadCast
FlagLoopback
FlagPointToPoint
FlagMulticast
)
fmt.Println(FlagUp, FlagBroadCast, FlagLoopback, FlagPointToPoint, FlagMulticast)
}
结果将是 1 2 4 8 16
可以利用上面的常量进行位操作,譬如测试某给位是否为1,设置某个位的值,情况某个位的值
return v&FlagUp == FlagUp
}
func TurnDown(v *Flags) {
*v &^= FlagUp
}
2.例子2:
const (_ = 1 << (10 * iota)
KiB
MiB
TiB
PiB
)
快速定义KB,MB,TB,PB等常量