[转载]Go 语言之 const 内的 iota

转载自:https://www.cnblogs.com/mingbai/p/goConstItoa.html

iota 是什么

const 内的 iota 是 golang 的常量计数器,只能在常量的表达式中使用,即 const 内。

iota 在 const 关键字出现时将被重置为 0(const 内部的第一行之前),const 中每新增一行常量声明将使 iota 计数一次。

可以参照行号理解,也就是说将 iota 理解为 const 语句块中的行索引。

iota 的特性

通过例子说明其各种特性。

1、每次 const 出现时,都会让 iota 初始化为 0。

2、自定义类型

自增长常量经常包含一个自定义枚举类型,允许你依靠编译器完成自增设置。

3、可跳过的值

4、位掩码表达式

5、定义数量级

6、定义在一行的情况

跟普通形式 没什么不同

iota 在下一行增长,而不是立即取得它的引用。

7、中间插队

中间插队时,iota 会被覆盖掉 ,不再继续自增。但是用另一个 iota 接一下,又会继续自增。 示例如下,中间插入了 5 和 6, 5 下面有 iota 接,6 没有。

那么打印出来的结果是 0 5 2 6 6 6

好处和坏处

使用 iota 能简化定义,在定义枚举时很有用。当代码需要改动的时候,也比较易于拓展或者修改。另外看起来也是有些逼格在里边的。

但是 itoa 令代码相对的不那么的明了易懂。会加大理解代码的负担。如果刚好遇上一个同事不太懂 itoa 的用法又不愿意学习,会加大挖坑的可能性。

所以建议适当的用,即只用其简单的特性就好了。 主张:代码的基本需求之一是 给人看的。机器跑起来没问题,让人能易于看懂才是好代码。

参考:https://blog.csdn.net/xuduorui/article/details/78653895

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注