mirror of
https://github.com/unknwon/the-way-to-go_ZH_CN.git
synced 2025-08-12 00:11:36 +08:00
修正一些小错误和语言不通顺的地方 (#274)
* Update 07.3.md * Update 07.3.md * Update 07.6.md * fix few problems
This commit is contained in:
@@ -72,9 +72,9 @@ map 的初始化:`var map1[keytype]valuetype = make(map[keytype]valuetype)`。
|
||||
|
||||
或者简写为:`map1 := make(map[keytype]valuetype)`。
|
||||
|
||||
上面例子中的 mapCreated 就是用这种方式创建的:`mapCreated := make(map[string]float)`。
|
||||
上面例子中的 mapCreated 就是用这种方式创建的:`mapCreated := make(map[string]float32)`。
|
||||
|
||||
相当于:`mapCreated := map[string]float{}`。
|
||||
相当于:`mapCreated := map[string]float32{}`。
|
||||
|
||||
mapAssigned 也是 mapList 的引用,对 mapAssigned 的修改也会影响到 mapLit 的值。
|
||||
|
||||
@@ -83,12 +83,12 @@ mapAssigned 也是 mapList 的引用,对 mapAssigned 的修改也会影响到
|
||||
**注意** 如果你错误的使用 new() 分配了一个引用对象,你会获得一个空引用的指针,相当于声明了一个未初始化的变量并且取了它的地址:
|
||||
|
||||
```go
|
||||
mapCreated := new(map[string]float)
|
||||
mapCreated := new(map[string]float32)
|
||||
```
|
||||
|
||||
接下来当我们调用:`mapCreated["key1"] = 4.5` 的时候,编译器会报错:
|
||||
|
||||
invalid operation: mapCreated["key1"] (index of type *map[string]float).
|
||||
invalid operation: mapCreated["key1"] (index of type *map[string]float32).
|
||||
|
||||
为了说明值可以是任意类型的,这里给出了一个使用 `func() int` 作为值的 map:
|
||||
|
||||
@@ -115,7 +115,7 @@ func main() {
|
||||
和数组不同,map 可以根据新增的 key-value 对动态的伸缩,因此它不存在固定长度或者最大限制。但是你也可以选择标明 map 的初始容量 `capacity`,就像这样:`make(map[keytype]valuetype, cap)`。例如:
|
||||
|
||||
```go
|
||||
map2 := make(map[string]float, 100)
|
||||
map2 := make(map[string]float32, 100)
|
||||
```
|
||||
|
||||
当 map 增长到容量上限的时候,如果再增加新的 key-value 对,map 的大小会自动加 1。所以出于性能的考虑,对于大的 map 或者会快速扩张的 map,即使只是大概知道容量,也最好先标明。
|
||||
|
Reference in New Issue
Block a user