golang使用iota
生活随笔
收集整理的這篇文章主要介紹了
golang使用iota
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
最近學習起了go語言,發(fā)現(xiàn)runoob上的入門寫的較為簡單,但是仍不是很理解,找了一些資料學習下。
iota是golang語言的常量計數(shù)器,只能在常量的表達式中使用;這里首先表明了iota的作用。
iota在const關鍵字出現(xiàn)時將被重置為0(const內部的第一行之前),const中每新增一行常量聲明將使iota計數(shù)一次(iota可理解為const語句塊中的行索引)。使用iota能簡化定義,主要用于定義枚舉,而且很有用。
1、iota只能用于常量表達式
package main import "fmt"func main() {fmt.Println(iota) } # command-line-arguments .\goplay.go:83:17: undefined: iota錯誤: 進程退出代碼 2.2、每次const出現(xiàn)時,都會使得iota初始化為0
package main import "fmt"func main() {const a = iota //a = 0const (b = iota //b = 0c // c = 1 )fmt.Println(a,b,c) } 0 0 1成功: 進程退出代碼 0.3、自定義類型
自增長的常量如果頂一個為一個枚舉類型,實現(xiàn)變量自增
package main import "fmt"func main() {const (Sun = iota //Sun = 0Mon // Mon = 1 TueWedThuFriSat)fmt.Println(Sun,Mon,Tue,Wed,Thu,Fri,Sat) } 0 1 2 3 4 5 6成功: 進程退出代碼 0.4、中間插入一個值
package main import "fmt"func main() {const (Sun = iota //Sun = 0Mon // Mon = 1 Tue = 7Thu= iota // 3Fri //4)fmt.Println(Sun,Mon,Tue,Thu,Fri) }5、掩碼表示
package main import "fmt"func main() {const(IgEggs = 1 << iota //1 << 0 whic is 00000001IgChocolate // 1 << 1 which is 00000010IgNuts // 1 << 2 which is 00000100 //IgStrawberries // 1 << 3 which is 00001000 //IgShellfish // 1 << 4 which is 00010000 )fmt.Println(IgEggs,IgChocolate,IgNuts) } 1 2 4發(fā)現(xiàn)每次可以左移一位,因此對于定義數(shù)量級大有裨益
const (_ = iota // ignore first value by assigning to blank identifierKB ByteSize = 1 << (10 * iota) // 1 << (10*1)MB // 1 << (10*2)GB // 1 << (10*3)TB // 1 << (10*4)PB // 1 << (10*5)EB // 1 << (10*6)ZB // 1 << (10*7)YB // 1 << (10*8) )?
總結
以上是生活随笔為你收集整理的golang使用iota的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 中使用ElementTre
- 下一篇: javaScript字符串应用