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等常量
本文介绍使用Go语言中的 iota 进行位操作的方法,包括如何定义位标志及进行位标志的操作,如检查、设置和清除特定位的值。同时展示了通过 iota 自动生成常量的技巧,用于快速定义单位如KB、MB等。
754

被折叠的 条评论
为什么被折叠?



