抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

根据下边的代码,来初步认识一下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的一个特性,它可以简化常量的定义,并能够在一组相关的常量中生成连续递增的值。


评论