分享
GoLang 随笔 - iota 的特性与用法
凉丶心园 · · 1098 次点击 · · 开始浏览这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。
- 依靠编译器完成自增
const (
a = iota // a = 0
b // b = 1
c // c = 2
)
- 利用只写变量
_跳过自增
const (
a = iota // a = 0
b // b = 1
_
_
c // c = 4
)
- 可以插入其他常量,且不影响iota自增
const (
a = iota // a = 0
b = "b" // b = "b"
c = iota //c = 2
d // d = 3
)
- 如果定义在同一行
const (
a, b = iota , iota + 1
c, d
e, f
)
// a = 0, b = 1, c = 2, d = 3, e = 4, f = 5
- 定义位掩码表达式
const (
a = 1 << iota // 1 << 0 结果为 00000001
b // 1 << 1 结果为 00000010
c // 1 << 2 结果为 00000100
d // 1 << 3 结果为 00001000
e // 1 << 4 结果为 00010000
)
- 定义数量级
type ByteSize float64
const (
_ = iota // 跳过 0
KB ByteSize = 1 << (10 * iota) // 1 << (10*1)
MB // 1 << (10*2)
GB // 1 << (10*3)
TB // 1 << (10*4)
PB // 1 << (10*5)
EB // 1 << (10*6)
ZB // 1 << (10*7)
YB // 1 << (10*8)
)
以上内容均源于网络,并加上自己的实践和理解,如有错误的地方,请在评论区指正。
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信1098 次点击
上一篇:GoLang 学习笔记 - 常量
添加一条新回复
(您需要 后才能回复 没有账号 ?)
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传
收入到我管理的专栏 新建专栏
- 依靠编译器完成自增
const (
a = iota // a = 0
b // b = 1
c // c = 2
)
- 利用只写变量
_跳过自增
const (
a = iota // a = 0
b // b = 1
_
_
c // c = 4
)
- 可以插入其他常量,且不影响iota自增
const (
a = iota // a = 0
b = "b" // b = "b"
c = iota //c = 2
d // d = 3
)
- 如果定义在同一行
const (
a, b = iota , iota + 1
c, d
e, f
)
// a = 0, b = 1, c = 2, d = 3, e = 4, f = 5
- 定义位掩码表达式
const (
a = 1 << iota // 1 << 0 结果为 00000001
b // 1 << 1 结果为 00000010
c // 1 << 2 结果为 00000100
d // 1 << 3 结果为 00001000
e // 1 << 4 结果为 00010000
)
- 定义数量级
type ByteSize float64
const (
_ = iota // 跳过 0
KB ByteSize = 1 << (10 * iota) // 1 << (10*1)
MB // 1 << (10*2)
GB // 1 << (10*3)
TB // 1 << (10*4)
PB // 1 << (10*5)
EB // 1 << (10*6)
ZB // 1 << (10*7)
YB // 1 << (10*8)
)
以上内容均源于网络,并加上自己的实践和理解,如有错误的地方,请在评论区指正。