mirror of
https://github.com/gopl-zh/gopl-zh.github.com.git
synced 2025-12-17 11:14:20 +08:00
ch4-2, ch4-3: review
This commit is contained in:
@@ -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 += y和x++等簡短賦值語法也可以用在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)函數,這樣可以按單詞而不是按行輸入。
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user