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