Golang——枚举(iota)的使用
生活随笔
收集整理的這篇文章主要介紹了
Golang——枚举(iota)的使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
枚舉就是將數據值一一列出來,枚舉可以用來表示一些固定的值,枚舉是常量組成的。在Go中沒有枚舉的特定方法,但是可以通過iota實現功能。
iota:
- iota是Go語言的常量計數器,const出現時, 會將iota初始化為0,const中每新增一行iota就會計數一次,遞增默認數據類型為int
- iota可以配合枚舉使用
iota可以持續遞增
func test13() {const (a = iota // 第一行 重置為0 a:0b // 第二行 新增1行 b:1c // 第三行 新增1行 c:2)fmt.Println(a, b, c) }如果中斷iota遞增,必須再次遇到iota才會恢復按行遞增,否則將沿用上一次取值
func test14() {const (a = 1 + iota // 第0行 重置為0 a = 1 + 0b // 第1行 新增1行 b = 1 + 1c // 第2行 新增1行 c = 1 + 2d = 4 // 第3行 新增1行 d = 4e // 第4行 新增1行 e = 4 與上一行常量右值表達式相同 f // 第5行 新增1行 f = 4 只要不遇到iota,就一直是上次賦值的值,就是4g = iota // 第6行 重置為0 g = 6 這里遇到了iota,恢復iota自增,計數包括前面所有的常量i // 第7行 新增1行 i = 7 接著g+1,如果再定義常量初始化,就還是和4一樣循環)fmt.Println(a, b, c, d, e, f, g, i) }如果使用多個常量賦值的時候,后面的數據都會跟著第一行的格式走,直到下一個iota出現
func test15() {const (a, b = 1 + iota, 2 + iota // iota = 0 a = iota + 1 b = iota + 2 a = 1 ,b = 2c, d // iota = 1 c = iota + 1 d = iota + 2 c = 2 ,d = 3e, f // iota = 2 e = iota + 1 f = iota + 2 e = 3 ,f = 4g, h = 3 + iota, 4 + iota // iota = 3 g = iota + 3 h = iota + 4 g = 6 ,h = 7i, j // iota = 4 i = iota + 3 j = iota + 4 i = 7 ,j = 8)fmt.Println(a, b, c, d, e, f, g, h, i, j) }可以自定義類型來實現用途明確的枚舉類型。但須注意,這并不能將取值限定在預定義的枚舉常量值范圍內。
func main() {test(red)test(100) // 100并未超出color/byte類型取值范圍。x := 2test(x) // 錯誤:無法將 'x' (類型 int) 用作類型 color }type color byte // 自定義類型const (black color = iota // 指定常量類型redblue )func test(c color) {fmt.Println(c) }總結
以上是生活随笔為你收集整理的Golang——枚举(iota)的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Golang——秒懂函数、参数、可变参数
- 下一篇: 拯救者linux无法正常关机,Ubunt