本来是个很基础的点,但为了多写写博练练手也就顺便写篇博客瞎记录一下了。
常量顾名思义就是不允许被修改的值,而iota
则是可以被编辑器所修改的特殊常量,其在const关键字出现时将被重置为0(const
内部的第一行之前),在const
中每增加一行常量iota
就会计数一次。
举个栗子
const(
a = iota
b = iota
c = iota
)
其等价于
const(
a = iota
b
c
)
上面的a=0,b=1,c=2
接下来就是比较好玩的用法了:
拿个菜鸟教程的栗子
const (
a = iota //0
b //1
c //2
d = "ha" //独立值,iota += 1
e //"ha" iota += 1
f = 100 //iota +=1
g //100 iota +=1
h = iota //7,恢复计数
i //8
)
自己写的例子
const(
a =iota //0 iota=0
b //1 iota=1
c //2 iota=2
d = iota*2+1 //3*2+1=7 iota=3
e //4*2+1=9 iota=4
f //5*2+1=11 iota=5
)
从上面的结果可以知道,const如果省略=
来对常量赋值,则这个常量的值就和在其之上与之最近的被赋值的常量相同。然而iota是会自增变化的,于是乎对于用含iota表达式赋值的常量,在其之下省略=
声明的常量的值就是这个含iota表达式带入对应iota的值。
以上是我初学阶段的理解,也许会有说的不对或理解不透彻的地方。