修改部分描述,添加必要的标点符号,补充代码超链接 (#804)

This commit is contained in:
Jck
2021-10-25 23:34:42 +08:00
committed by GitHub
parent d5578df00a
commit 39dbdb7094
100 changed files with 433 additions and 414 deletions

View File

@@ -23,7 +23,7 @@ map 传递给函数的代价很小:在 32 位机器上占 4 个字节64 位
map 也可以用函数作为自己的值,这样就可以用来做分支结构(详见第 5 章key 用来选择要执行的函数。
如果 key1 是 map1 的key那么 `map1[key1]` 就是对应 key1 的值,就如同数组索引符号一样(数组可以视为一种简单形式的 mapkey 是从 0 开始的整数)。
如果 key1 是 map1 的 key那么 `map1[key1]` 就是对应 key1 的值,就如同数组索引符号一样(数组可以视为一种简单形式的 mapkey 是从 0 开始的整数)。
key1 对应的值可以通过赋值符号来设置为 val1`map1[key1] = val1`
@@ -80,7 +80,7 @@ mapAssigned 也是 mapLit 的引用,对 mapAssigned 的修改也会影响到 m
**不要使用 new永远用 make 来构造 map**
**注意** 如果你错误使用 new() 分配了一个引用对象,你会获得一个空引用的指针,相当于声明了一个未初始化的变量并且取了它的地址:
**注意** 如果你错误使用 new() 分配了一个引用对象,你会获得一个空引用的指针,相当于声明了一个未初始化的变量并且取了它的地址:
```go
mapCreated := new(map[string]float32)
@@ -130,7 +130,7 @@ noteFrequency := map[string]float32 {
## 8.1.3 用切片作为 map 的值
既然一个 key 只能对应一个 value而 value 又是一个原始类型,那么如果一个 key 要对应多个值怎么办例如当我们要处理unix机器上的所有进程以父进程pid 为整型)作为 key所有的子进程以所有子进程的 pid 组成的切片)作为 value。通过将 value 定义为 `[]int` 类型或者其他类型的切片,就可以优雅解决这个问题。
既然一个 key 只能对应一个 value而 value 又是一个原始类型,那么如果一个 key 要对应多个值怎么办例如当我们要处理unix机器上的所有进程以父进程pid 为整型)作为 key所有的子进程以所有子进程的 pid 组成的切片)作为 value。通过将 value 定义为 `[]int` 类型或者其他类型的切片,就可以优雅解决这个问题。
这里有一些定义这种 map 的例子: