日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

golang使用iota

發布時間:2025/3/20 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 golang使用iota 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近學習起了go語言,發現runoob上的入門寫的較為簡單,但是仍不是很理解,找了一些資料學習下。

iota是golang語言的常量計數器,只能在常量的表達式中使用;這里首先表明了iota的作用。

iota在const關鍵字出現時將被重置為0(const內部的第一行之前),const中每新增一行常量聲明將使iota計數一次(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出現時,都會使得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、自定義類型

自增長的常量如果頂一個為一個枚舉類型,實現變量自增

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

發現每次可以左移一位,因此對于定義數量級大有裨益

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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。