iota的使用细节

题目:

下面这段代码能否编译通过?如果可以,输出什么?

1
2
3
4
5
6
7
8
9
10
11
12
const (
x = iota
_
y
z = "zz"
k
p = iota
)

func main() {
fmt.Println(x,y,z,k,p)
}

答案解析:

参考答案:编译通过,输出:0 2 zz zz 5

知识点:

  1. iota 只能在常量的表达式中使用

  2. 每次 const 出现时,都会让 iota 初始化为 0【自增长】

  3. 使用 iota 自定义枚举类型

  4. 可以用 ‘_’ 线跳过值

  5. 可用于定义数量级

  6. iota 在下一行增长

    1
    2
    3
    4
    5
    const (
    Apple, Banana = iota + 1, iota + 2 // 1, 2
    Cherimoya, Durian // 2, 3
    Elderberry, Fig // 3, 4
    )
  7. 中间允许插队,但增值依旧不变

    1
    2
    3
    4
    5
    6
    const (
    i = iota // 0
    j = 3.14 // 3.14
    k = iota // 2
    l // 3
    )

参考 https://www.cnblogs.com/zsy/p/5370052.html


iota的使用细节
http://example.com/2023/09/15/Go每日一题/iota的使用细节/
作者
Feng Tao
发布于
2023年9月15日
更新于
2023年9月15日
许可协议