第4章,部分字词修订。

This commit is contained in:
zhliner
2017-08-24 22:27:15 +08:00
parent 725acf091c
commit 9c0723ff6a
9 changed files with 19 additions and 19 deletions

View File

@@ -115,7 +115,7 @@ ages["carol"] = 21 // panic: assignment to entry in nil map
在向map存数据前必须先创建map。
通过key作为索引下标来访问map将产生一个value。如果key在map中是存在的那么将得到与key对应的value如果key不存在那么将得到value对应类型的零值正如我们前面看到的ages["bob"]那样。这个规则很实用但是有时候可能需要知道对应的元素是否真的是在map之中。例如如果元素类型是一个数字你可需要区分一个已经存在的0和不存在而返回零值的0可以像下面这样测试
通过key作为索引下标来访问map将产生一个value。如果key在map中是存在的那么将得到与key对应的value如果key不存在那么将得到value对应类型的零值正如我们前面看到的ages["bob"]那样。这个规则很实用但是有时候可能需要知道对应的元素是否真的是在map之中。例如如果元素类型是一个数字你可需要区分一个已经存在的0和不存在而返回零值的0可以像下面这样测试
```Go
age, ok := ages["bob"]
@@ -192,7 +192,7 @@ func Count(list []string) int { return m[k(list)] }
使用同样的技术可以处理任何不可比较的key类型而不仅仅是slice类型。这种技术对于想使用自定义key比较函数的时候也很有用例如在比较字符串的时候忽略大小写。同时辅助函数k(x)也不一定是字符串类型,它可以返回任何可比较的类型,例如整数、数组或结构体等。
这是map的另一个例子下面的程序用于统计输入中每个Unicode码点出现的次数。虽然Unicode全部码点的数量巨大但是出现在特定文档中的字符种类并没有多少使用map可以用比较自然的方式来跟踪那些出现过字符的次数。
这是map的另一个例子下面的程序用于统计输入中每个Unicode码点出现的次数。虽然Unicode全部码点的数量巨大但是出现在特定文档中的字符种类并没有多少使用map可以用比较自然的方式来跟踪那些出现过字符的次数。
<u><i>gopl.io/ch4/charcount</i></u>
```Go