ch4-2, ch4-3: review

This commit is contained in:
chai2010
2016-01-06 21:17:08 +08:00
parent 336e74c44f
commit 491d771cdd
4 changed files with 15 additions and 21 deletions

View File

@@ -27,7 +27,7 @@ ages["alice"] = 31
ages["charlie"] = 34
```
因此另一種創建空的map的表達式是map[string]int{}。
因此另一種創建空的map的表達式是`map[string]int{}`
Map中的元素通過key對應的下標語法訪問
@@ -48,7 +48,7 @@ delete(ages, "alice") // remove element ages["alice"]
ages["bob"] = ages["bob"] + 1 // happy birthday!
```
而且x += yx++等簡短賦值語法也可以用在map上所以上面的代碼可以改寫成
而且`x += y``x++`等簡短賦值語法也可以用在map上所以上面的代碼可以改寫成
```Go
ages["bob"] += 1
@@ -176,7 +176,7 @@ func main() {
}
```
Go程序員將這種忽略value的map當作一個字符串集合併非所有map[string]bool類型value都是無關緊要的有一些則可能會同時包含tue和false的值。
Go程序員將這種忽略value的map當作一個字符串集合併非所有`map[string]bool`類型value都是無關緊要的有一些則可能會同時包含tue和false的值。
有時候我們需要一個map或set的key是slice類型但是map的key必鬚是可比較的但是slice併不滿足這個條件。不過我們可以通過兩個步驟繞過這個限製。第一步定義一個輔助函數k將slice轉爲map對應的string類型的key確保隻有x和y相等時k(x) == k(y)才成立。然後創建一個key爲string類型的map在每次對map操作時先用k輔助函數將slice轉化爲string類型。
@@ -292,5 +292,3 @@ func hasEdge(from, to string) bool {
**練習 4.8** 脩改charcount程序使用unicode.IsLetter等相關的函數統計字母、數字等Unicode中不同的字符類别。
**練習 4.9** 編寫一個程序wordfreq程序報告輸入文本中每個單詞出現的頻率。在第一次調用Scan前先調用input.Split(bufio.ScanWords)函數,這樣可以按單詞而不是按行輸入。