官术网_书友最值得收藏!

2.4 編程范例——iota的使用技巧

雖然在2.3節的示例代碼中定義周日至周六的枚舉值為0~6,但我們更習慣于將周一至周日定義為1~7。那么利用iota該如何實現呢?

要實現該需求,需要跳過iota的初始值0。我們可以利用一個額外常量來占用0,從而實現跳過索引0。但是,這個額外的常量的名稱可能又成為一個讓人糾結的問題。大家通常都不喜歡無意義的常量名。

Go語言中,可以利用匿名名稱“_”來定義變量和常量,這樣的變量和常量被稱作匿名變量/匿名常量。代碼清單2-9演示了利用匿名常量來跳過iota的0值索引。

代碼清單2-9 利用匿名常量跳過iota的0值索引

在該代碼段中,利用“_ = iota”來將iota的第一個索引值(0)賦予匿名常量,從而使自Monday開始的后續常量的值從1開始。

執行該代碼,最終在控制臺上的打印效果如下:

    1 2 3 4 5 6 7

在上例中,利用匿名常量跳過了單個值。但是,如果需要跳過多個值,則利用額外變量便不再是好的解決方案。例如,將自2000年開始的10個年份作為常量,該如何處理呢?

其實,我們還可以在常量賦值時增加表達式運算,代碼如下:

在該段代碼中,我們利用加法運算結合iota來為所有常量賦值,從而實現非0開始的連續值。

主站蜘蛛池模板: 北宁市| 陆川县| 金乡县| 许昌县| 永靖县| 中宁县| 布拖县| 兴化市| 闽清县| 莱州市| 抚顺县| 大石桥市| 延吉市| 无为县| 颍上县| 刚察县| 永平县| 炎陵县| 盘锦市| 府谷县| 蕉岭县| 汉中市| 永州市| 西青区| 招远市| 称多县| 定襄县| 株洲市| 景洪市| 呼和浩特市| 凌海市| 潢川县| 温宿县| 营口市| 山西省| 马鞍山市| 财经| 天津市| 河北区| 利津县| 武平县|