1、golang中iota是什么
iota是常量的計數器,可以理解為const定義常量的行數的索引,注意是行數。
const中每新增一行常量聲明將使iota計數一次,當然前提是iota在const中出現。
2、應用場景
主要應用場景是在需要枚舉的地方
3、易錯點
因為iota一般出現在const語句塊的第一行,不少的初學者會將之認為iota就是0,這是不對的。
准確的說:iota出現在const語句塊中的第幾行,那么它就是幾,當然這里的行數的索引也是以0為開始
4、例子
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
}
