Browse Source

修复与更正 (#337)

* Update 06.4.md

标点符号错误

* Update 06.5.md

* Update 06.6.md

* Update 06.8.md

修正上一节目录索引错误

* Update 06.8.md

* Update 07.0.md

* Update 07.1.md

* Update 07.6.md

用词不统一

* Update 08.0.md

* Update 08.6.md

用词不统一

* Update 09.0.md

* Update 09.5.md

修改不通顺

* 拼写错误

[建议加上`git remote -v`](https://help.github.com/articles/adding-an-existing-project-to-github-using-the-command-line/)

* Update 10.0.md

* 统一风格

* 调整位置,保证最后一行可以输出

* 保证最后一行可以输出

* 格式

* markdown 修改
AutuanLiu 11 months ago
parent
commit
6d3f1902ba
17 changed files with 23 additions and 22 deletions
  1. 1 1
      eBook/06.4.md
  2. 2 2
      eBook/06.5.md
  3. 1 1
      eBook/06.6.md
  4. 2 2
      eBook/06.8.md
  5. 1 1
      eBook/07.0.md
  6. 1 1
      eBook/07.1.md
  7. 1 1
      eBook/07.6.md
  8. 1 1
      eBook/08.0.md
  9. 1 1
      eBook/08.6.md
  10. 1 1
      eBook/09.0.md
  11. 1 1
      eBook/09.5.md
  12. 1 1
      eBook/09.9.md
  13. 1 1
      eBook/10.0.md
  14. 1 0
      eBook/10.6.md
  15. 3 3
      eBook/12.2.md
  16. 2 2
      eBook/16.2.md
  17. 2 2
      eBook/examples/chapter_12/fileinput.go

+ 1 - 1
eBook/06.4.md

@@ -51,7 +51,7 @@ func a() {
51 51
 ```go
52 52
 func f() {
53 53
 	for i := 0; i < 5; i++ {
54
-		defer fmt.Printf(“%d “, i)
54
+		defer fmt.Printf("%d ", i)
55 55
 	}
56 56
 }
57 57
 ```

File diff suppressed because it is too large
+ 2 - 2
eBook/06.5.md


+ 1 - 1
eBook/06.6.md

@@ -1,6 +1,6 @@
1 1
 # 6.6 递归函数
2 2
 
3
-当一个函数在其函数体内调用自身,则称之为递归。最经典的例子便是计算斐波那契数列,即每个数均为前两个数之和。
3
+当一个函数在其函数体内调用自身,则称之为递归。最经典的例子便是计算斐波那契数列,即前两个数为1,从第三个数开始每个数均为前两个数之和。
4 4
 
5 5
 数列如下所示:
6 6
 

+ 2 - 2
eBook/06.8.md

@@ -11,7 +11,7 @@ outside function body`),但可以被赋值于某个变量,即保存函数
11 11
 
12 12
 ```go
13 13
 func() {
14
-	sum = 0.0
14
+	sum := 0.0
15 15
 	for i := 1; i <= 1e6; i++ {
16 16
 		sum += i
17 17
 	}
@@ -96,5 +96,5 @@ func main() {
96 96
 ## 链接
97 97
 
98 98
 - [目录](directory.md)
99
-- 上一节:[递归函数](06.6.md)
99
+- 上一节:[将函数作为参数](06.7.md)
100 100
 - 下一节:[应用闭包:将函数作为返回值](06.9.md)

+ 1 - 1
eBook/07.0.md

@@ -7,5 +7,5 @@
7 7
 ## 链接
8 8
 
9 9
 - [目录](directory.md)
10
-- 上一:[通过内存缓存来提升性能](06.12.md)
10
+- 上一:[通过内存缓存来提升性能](06.12.md)
11 11
 - 下一节:[声明和初始化](07.1.md)

+ 1 - 1
eBook/07.1.md

@@ -1,6 +1,6 @@
1 1
 # 7.1 声明和初始化
2 2
 
3
-##7.1.1 概念
3
+## 7.1.1 概念
4 4
 数组是具有相同 **唯一类型** 的一组已编号且长度固定的数据项序列(这是一种同构的数据结构);这种类型可以是任意的原始类型例如整形、字符串或者自定义类型。数组长度必须是一个常量表达式,并且必须是一个非负整数。数组长度也是数组类型的一部分,所以[5]int和[10]int是属于不同类型的。数组的编译时值初始化是按照数组顺序完成的(如下)。
5 5
 
6 6
 **注意事项** 如果我们想让数组元素类型为任意类型的话可以使用空接口作为类型(参考 [第 11 章](11.9.md))。当使用值时我们必须先做一个类型判断(参考 [第 11 章](11.3.md))。

+ 1 - 1
eBook/07.6.md

@@ -137,7 +137,7 @@ func SearchStrings(a []string, x string) int
137 137
 
138 138
 ## 7.6.8 切片和垃圾回收
139 139
 
140
-切片的底层指向一个数组,该数组的实际体积可能要大于切片所定义的体积。只有在没有任何切片指向的时候,底层的数组内层才会被释放,这种特性有时会导致程序占用多余的内存。
140
+切片的底层指向一个数组,该数组的实际容量可能要大于切片所定义的容量。只有在没有任何切片指向的时候,底层的数组内层才会被释放,这种特性有时会导致程序占用多余的内存。
141 141
 
142 142
 **示例** 函数 `FindDigits` 将一个文件加载到内存,然后搜索其中所有的数字并返回一个切片。
143 143
 

+ 1 - 1
eBook/08.0.md

@@ -7,5 +7,5 @@ map 这种数据结构在其他编程语言中也称为字典(Python)、hash
7 7
 ## 链接
8 8
 
9 9
 - [目录](directory.md)
10
-- 上一:[字符串、数组和切片的应用](07.6.md)
10
+- 上一:[字符串、数组和切片的应用](07.6.md)
11 11
 - 下一节:[声明、初始化和 make](08.1.md)

+ 1 - 1
eBook/08.6.md

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

+ 1 - 1
eBook/09.0.md

@@ -5,5 +5,5 @@
5 5
 ## 链接
6 6
 
7 7
 - [目录](directory.md)
8
-- 上一:[将 map 的键值对调](08.6.md)
8
+- 上一:[将 map 的键值对调](08.6.md)
9 9
 - 下一节:[标准库概述](09.1.md)

+ 1 - 1
eBook/09.5.md

@@ -1,6 +1,6 @@
1 1
 # 9.5 自定义包和可见性
2 2
 
3
-包是 Go 语言中代码组织和代码编译的主要方式。很多关于它们的基本信息已经在 4.2 章节中给出,最引人注目的便是可见性。现在我们来看看具体如何来使用自己写的包。在下一节,我们将回顾一些标准库中的包,自定义的包和标准库以外的包。
3
+包是 Go 语言中代码组织和代码编译的主要方式。关于它们的很多基本信息已经在 4.2 章节中给出,最引人注目的便是可见性。现在我们来看看具体如何来使用自己写的包。在下一节,我们将回顾一些标准库中的包,自定义的包和标准库以外的包。
4 4
 
5 5
 当写自己包的时候,要使用短小的不含有 `_`(下划线)的小写单词来为文件命名。这里有个简单例子来说明包是如何相互调用以及可见性是如何实现的。
6 6
 

+ 1 - 1
eBook/09.9.md

@@ -24,7 +24,7 @@
24 24
 在云端创建一个新的 uc 仓库;发布的指令为(`NNNN` 替代用户名):
25 25
 
26 26
 ```
27
-git remote add orign git@github.com:NNNN/uc.git  
27
+git remote add origin git@github.com:NNNN/uc.git  
28 28
 git push -u origin master
29 29
 ```
30 30
 

+ 1 - 1
eBook/10.0.md

@@ -9,5 +9,5 @@ Go 通过类型别名(alias types)和结构体的形式支持用户自定义
9 9
 ## 链接
10 10
 
11 11
 - [目录](directory.md)
12
-- 上一:[在 Go 程序中使用外部库](09.11.md)
12
+- 上一:[在 Go 程序中使用外部库](09.11.md)
13 13
 - 下一节:[结构体定义](10.1.md)

+ 1 - 0
eBook/10.6.md

@@ -428,6 +428,7 @@ func (n *NamedPoint) Abs() float64 {
428 428
 主要有两种方法来实现在类型中嵌入功能:
429 429
 
430 430
 A:聚合(或组合):包含一个所需功能类型的具名字段。
431
+
431 432
 B:内嵌:内嵌(匿名地)所需功能类型,像前一节 10.6.5 所演示的那样。
432 433
 
433 434
 为了使这些概念具体化,假设有一个 `Customer` 类型,我们想让它通过 `Log` 类型来包含日志功能,`Log` 类型只是简单地包含一个累积的消息(当然它可以是复杂的)。如果想让特定类型都具备日志功能,你可以实现一个这样的 `Log` 类型,然后将它作为特定类型的一个字段,并提供 `Log()`,它返回这个日志的引用。

+ 3 - 3
eBook/12.2.md

@@ -28,10 +28,10 @@ func main() {
28 28
     inputReader := bufio.NewReader(inputFile)
29 29
     for {
30 30
         inputString, readerError := inputReader.ReadString('\n')
31
+	fmt.Printf("The input was: %s", inputString)
31 32
         if readerError == io.EOF {
32 33
             return
33
-        }
34
-        fmt.Printf("The input was: %s", inputString)
34
+        }      
35 35
     }
36 36
 }
37 37
 ```
@@ -75,7 +75,7 @@ func main() {
75 75
     fmt.Printf("%s\n", string(buf))
76 76
     err = ioutil.WriteFile(outputFile, buf, 0644) // oct, not hex
77 77
     if err != nil {
78
-        panic(err. Error())
78
+        panic(err.Error())
79 79
     }
80 80
 }
81 81
 ```

+ 2 - 2
eBook/16.2.md

@@ -1,6 +1,6 @@
1 1
 # 16.2 误用字符串
2 2
 
3
-当需要对一个字符串进行频繁的操作时,谨记在go语言中字符串是不可变的(类似java和c#)。使用诸如`a += b`形式连接字符串效率低下,尤其在一个循环内部使用这种形式。这会导致大量的内存开销和拷贝。**应该使用一个字符数组代替字符串,将字符串内容写入一个缓存中。**例如以下的代码示例:
3
+当需要对一个字符串进行频繁的操作时,谨记在go语言中字符串是不可变的(类似java和c#)。使用诸如`a += b`形式连接字符串效率低下,尤其在一个循环内部使用这种形式。这会导致大量的内存开销和拷贝。**应该使用一个字符数组代替字符串,将字符串内容写入一个缓存中。** 例如以下的代码示例:
4 4
 
5 5
 ```go
6 6
 var b bytes.Buffer
@@ -17,4 +17,4 @@ for condition {
17 17
 
18 18
 - [目录](directory.md)
19 19
 - 上一节:[误用短声明导致变量覆盖](16.1.md)
20
-- 下一节:[发生错误时使用defer关闭一个文件](16.3.md)
20
+- 下一节:[发生错误时使用defer关闭一个文件](16.3.md)

+ 2 - 2
eBook/examples/chapter_12/fileinput.go

@@ -26,9 +26,9 @@ func main() {
26 26
 
27 27
 	for {
28 28
 		inputString, readerError := inputReader.ReadString('\n')
29
+		fmt.Printf("The input was: %s", inputString)
29 30
 		if readerError == io.EOF {
30 31
 			return // error or EOF
31
-		}
32
-		fmt.Printf("The input was: %s", inputString)
32
+		}	
33 33
 	}
34 34
 }