Unknwon 11 年之前
父节点
当前提交
64bb8b3ea3
共有 4 个文件被更改,包括 57 次插入49 次删除
  1. 1 1
      README.md
  2. 50 46
      eBook/08.5.md
  3. 5 2
      eBook/08.6.md
  4. 1 0
      eBook/directory.md

+ 1 - 1
README.md

@@ -9,7 +9,7 @@
 
 ## 翻译进度
 
-8.4 [map 类型的切片](eBook/08.4.md)
+8.5 [map 的排序](eBook/08.5.md)
 
 ## 支持本书
 

+ 50 - 46
eBook/08.5.md

@@ -1,62 +1,66 @@
 # 8.5 map 的排序
 
-192
+map 默认是无序的,不管是按照 key 还是按照 value 默认都不排序(详见第 8.3 节)。
 
-map默认是无序的,不管是按照key还是按照value默认都不排序(参见8.3节)
-
-如果你想为map排序,需要将key(或者value)拷贝到一个slice,再对slice排序(使用sort包,参见7.6.6),然后可以使用slice的for-range方法打印出所有的key和value。
+如果你想为 map 排序,需要将 key(或者 value)拷贝到一个 slice,再对 slice 排序(使用 sort 包,详见第 7.6.6 节),然后可以使用 slice 的 for-range 方法打印出所有的 key 和 value。
 
 下面有一个示例:
 
-示例 8.6 [sort_map.go](examples/chapter_8/sort_map.go)
-
-    // the telephone alphabet:
-    package main
-    import (
-    	"fmt"
-    	"sort"
-    )
-
-    var (
-    	barVal = map[string]int{"alpha": 34, "bravo": 56, "charlie": 23,
-    							"delta": 87, "echo": 56, "foxtrot": 12,
-    							"golf": 34, "hotel": 16, "indio": 87,
-    							"juliet": 65, "kili": 43, "lima": 98}
-    )
-
-    func main() {
-    	fmt.Println("unsorted:")
-    	for k, v := range barVal {
-    		fmt.Printf("Key: %v, Value: %v / ", k, v)
-    	}
-    	keys := make([]string, len(barVal))
-    	i := 0
-    	for k, _ := range barVal {
-    		keys[i] = k
-    	i++
-    	}
-    	sort.Strings(keys)
-    	fmt.Println()
-    	fmt.Println("sorted:")
-    	for _, k := range keys {
-    		fmt.Printf("Key: %v, Value: %v / ", k, barVal[k])
-    	}
-    }
+示例 8.6 [sort_map.go](examples/chapter_8/sort_map.go):
+
+```go
+// the telephone alphabet:
+package main
+import (
+	"fmt"
+	"sort"
+)
+
+var (
+	barVal = map[string]int{"alpha": 34, "bravo": 56, "charlie": 23,
+							"delta": 87, "echo": 56, "foxtrot": 12,
+							"golf": 34, "hotel": 16, "indio": 87,
+							"juliet": 65, "kili": 43, "lima": 98}
+)
+
+func main() {
+	fmt.Println("unsorted:")
+	for k, v := range barVal {
+		fmt.Printf("Key: %v, Value: %v / ", k, v)
+	}
+	keys := make([]string, len(barVal))
+	i := 0
+	for k, _ := range barVal {
+		keys[i] = k
+	i++
+	}
+	sort.Strings(keys)
+	fmt.Println()
+	fmt.Println("sorted:")
+	for _, k := range keys {
+		fmt.Printf("Key: %v, Value: %v / ", k, barVal[k])
+	}
+}
+```
 
 输出结果:
+
 	unsorted:
 	Key: bravo, Value: 56 / Key: echo, Value: 56 / Key: indio, Value: 87 / Key: juliet, Value: 65 / Key: alpha, Value: 34 / Key: charlie, Value: 23 / Key: delta, Value: 87 / Key: foxtrot, Value: 12 / Key: golf, Value: 34 / Key: hotel, Value: 16 / Key: kili, Value: 43 / Key: lima, Value: 98 /
 	sorted:
 	Key: alpha, Value: 34 / Key: bravo, Value: 56 / Key: charlie, Value: 23 / Key: delta, Value: 87 / Key: echo, Value: 56 / Key: foxtrot, Value: 12 / Key: golf, Value: 34 / Key: hotel, Value: 16 / Key: indio, Value: 87 / Key: juliet, Value: 65 / Key: kili, Value: 43 / Key: lima, Value: 98 / [[email protected] go]$ sz -be sort_map.go
 
-但是如果你想要一个排序的列表你最好使用结构体slice,这样会更有效:
+但是如果你想要一个排序的列表你最好使用结构体 slice,这样会更有效:
 
-	type struct {
-		key string
-		value int
-	}
+```go
+type struct {
+	key string
+	value int
+}
+```
+
+## 链接
 
-##链接
 - [目录](directory.md)
-- 上一节:[maps分片](08.4.md)
-- 下一节:[倒置map](08.6.md)
+- 上一节:[map 类型的切片](08.4.md)
+- 下一节:[将 map 的键值对调](08.6.md)

+ 5 - 2
eBook/08.6.md

@@ -1,4 +1,7 @@
-#8.6 倒置map
+# 8.6 将 map 的键值对调
+
+194
+
 这里倒置是指调换key和value。如果map的值类型可以作为key且所有的value是唯一的,那么通过下面的方法可以简单的做到倒置:
 
 示例 8.7 [invert_map.go](examples/chapter_8/invert_map.go)
@@ -26,7 +29,7 @@
 		}
 		fmt.Println()
 	}
-  
+
 输出结果:
 
 	inverted:

+ 1 - 0
eBook/directory.md

@@ -71,6 +71,7 @@
 	- 8.3 [for-range 的配套用法](08.3.md)
 	- 8.4 [map 类型的切片](08.4.md)
 	- 8.5 [map 的排序](08.5.md)
+	- 8.6 [将 map 的键值对调](08.6.md)
 - 第9章:包(package)
 - 第10章:结构(struct)与方法(method)
 - 第11章:接口(interface)与反射(reflection)