iota
go語(yǔ)言中不支持枚舉定義,但是使用
iota可以實(shí)現(xiàn)類似效果
枚舉定義
package main
import "fmt"
const (
a int = iota
b
)
func main() {
fmt.Println(a, b)
}
0 1
iota實(shí)際被定義為0,僅配合const關(guān)鍵字來(lái)使用也僅在此const范圍中有效
iota原理
iota有兩個(gè)功能:
- 為
const范圍內(nèi)后續(xù)的常量復(fù)制相同的表達(dá)式 -
iota的初始常量為0,之后的iota的值在每次處理為常量時(shí)都會(huì)自增1
高級(jí)示例
package main
import "fmt"
const (
a int = 1 << iota
b
)
func main() {
fmt.Println(a, b)
}
1 2