根据下边的代码,来初步认识一下GO 中的 `iota
package main
import "fmt"
func main() {
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
)
fmt.Println(a,b,c,d,e,f,g,h,i)
}
在使用iota定义常量时,iota的值会逐步递增。在你提供的代码中,常量d被赋值为"ha",此时iota的值为3。紧接着,常量e没有显式地赋值,而是继承了上一个表达式的值,也就是"ha"。因此,常量e的值也是"ha"。
换句话说,由于常量的赋值是顺序执行的,常量e在常量d后面定义,所以它继承并复制了常量d的值。这是iota的一个特性,它可以简化常量的定义,并能够在一组相关的常量中生成连续递增的值。