每期一个小窍门: 关于 go 的 iota 计数器

golang中iota是什么

  1. iota是常量的计数器,可以理解为const定义常量的行数的索引,注意是行数。

  2. const中每新增一行常量声明将使iota计数一次,当然前提是iota在const中出现。

  3. 因为iota一般出现在const语句块的第一行,不少的初学者会将之认为iota就是0,这是不对的。

  4. 准确的说:iota出现在const语句块中的第几行,那么它就是几,当然这里的行数的索引也是以0为开始

package main
 
 
import "fmt"
 
const (
    a = iota  // 0
    b           // 1
    c           // 2
)
 
 
const (
    x = 1     // 1
    y = iota // 1
    z          // 2
)
 
// 为什么c1不是2?
// 因为b1为100,所以按照golang常量定义的简便写法,c1为100
const (
    a1 = iota
    b1 = 100
    c1
    d1 = iota
    e1 
)
 
 
func main() {
    
    
    fmt.Println(a, b, c)                   // 0 1 2  
    fmt.Println(x, y, z)                   // 1 1 2
    fmt.Println(a1, b1, c1, d1, e1)  // 0 100 100 3 4
}

猜你喜欢

转载自blog.csdn.net/qq_33709508/article/details/132172333