ch3-06 review

This commit is contained in:
chai2010
2015-12-28 11:14:18 +08:00
parent 315fb47435
commit f4f7797ee4
3 changed files with 30 additions and 33 deletions

View File

@@ -1,9 +1,8 @@
### 3.6.1. iota 常量生成器
常量聲明可以使用iota常量生成器初始化它用於生成一組以相似規則初始化的常量但是不用每行都寫一遍初始化表達式。在一個const聲明語句中在第一個聲明的常量所在的行iota將會被置爲0然後在每一個有常量聲明的行加一。
常量聲明可以使用 iota 常量生成器, 用於生成一組相似的常量值, 但是不用每行都寫一遍. 在一個 const 聲明語句中, 在開始一行 iota 將會被置爲0, 然後在每一個常量聲明的行加一.
下面是來自 time 包的例子, 它首先定義了Weekday命名類型, 然後爲一週的每天定義一個常量, 從週日0開始. 這種類型一般被稱爲枚舉類型.
下面是來自time包的例子它首先定義了一個Weekday命名類型然後爲一週的每天定義了一個常量從週日0開始。在其它編程語言中這種類型一般被稱爲枚舉類型。
```Go
type Weekday int
@@ -19,9 +18,9 @@ const (
)
```
週一將對應0, 週一爲1, 如此等等.
週一將對應0週一爲1如此等等
我們也可以在複雜的常量表達式中使用 iota, 下面是來自 net 包的例子, 用於給一個無符號整數的最低5bit的每個bit定一個名字:
我們也可以在複雜的常量表達式中使用iota下面是來自net包的例子用於給一個無符號整數的最低5bit的每個bit定一個名字
```Go
type Flags uint
@@ -35,7 +34,7 @@ const (
)
```
隨着 iota 的遞增, 每個常量對應表達式 1 << iota, 是連續的2的冪, 分别對應一個bit位置. 使用這些常量可以測試, 設置, 或清除對應的bit位的值:
隨着iota的遞增每個常量對應表達式1 << iota是連續的2的冪分别對應一個bit位置使用這些常量可以用於測試設置或清除對應的bit位的值
```Go
gopl.io/ch3/netflag
@@ -56,7 +55,7 @@ unc main() {
}
```
下面是一個更複雜的例子, 每個常量都是1024的冪:
下面是一個更複雜的例子每個常量都是1024的冪
```Go
const (
@@ -72,8 +71,8 @@ const (
)
```
iota 機製也有其局限性. 例如, 它併不能用於産生1000的冪(KB,MB,等等), 因爲併沒有計算冪的運算符.
不過iota常量生成規則也有其局限性例如它併不能用於産生1000的冪KBMB因爲Go語言併沒有計算冪的運算符
**練習3.13:** 編寫KB,MB的常量聲明, 然後擴展到YB.
**練習 3.13** 編寫KBMB的常量聲明然後擴展到YB