GoLang 随笔 - iota 的特性与用法

凉丶心园 · · 247 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。
  1. 依靠编译器完成自增
const (
    a = iota  // a = 0
    b  // b = 1
    c  // c = 2
)
  1. 利用只写变量 _ 跳过自增
const (
    a = iota  // a = 0
    b  // b = 1
    _
    _
    c  // c = 4
)
  1. 可以插入其他常量,且不影响iota自增
const ( 
    a = iota  // a = 0
    b = "b"  // b = "b"
    c = iota  //c = 2
    d  // d = 3
)
  1. 如果定义在同一行
const (
    a, b = iota , iota + 1
    c, d  
    e, f    
) 
// a = 0, b = 1, c = 2, d = 3, e = 4, f = 5
  1. 定义位掩码表达式
const ( 
    a = 1 << iota  // 1 << 0 结果为 00000001 
    b              // 1 << 1 结果为 00000010 
    c              // 1 << 2 结果为 00000100 
    d              // 1 << 3 结果为 00001000 
    e              // 1 << 4 结果为 00010000 
)
  1. 定义数量级
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)
)




以上内容均源于网络,并加上自己的实践和理解,如有错误的地方,请在评论区指正。


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:凉丶心园

查看原文:GoLang 随笔 - iota 的特性与用法

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:701969077

247 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传