iota iota

iota

go语言中不支持枚举定义,但是使用iota可以实现类似效果

枚举定义

package main

import "fmt"

const (
    a int = iota
    b
)

func main() {
    fmt.Println(a, b)
}
0 1

iota实际被定义为0,仅配合const关键字来使用也仅在此const范围中有效

iota原理

iota有两个功能:

  • const范围内后续的常量复制相同的表达式
  • iota的初始常量为0,之后的iota的值在每次处理为常量时都会自增1

高级示例

package main

import "fmt"

const (
    a int = 1 << iota
    b
)

func main() {
    fmt.Println(a, b)
}
1 2
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章