From 32de28979e3db38c2adc18eed7414ff995f3a5c1 Mon Sep 17 00:00:00 2001 From: Xargin Date: Wed, 10 Aug 2016 23:15:55 +0800 Subject: [PATCH] fix typo --- ch12/ch12-06.md | 2 +- ch4/ch4-04.md | 2 +- ch7/ch7-09.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ch12/ch12-06.md b/ch12/ch12-06.md index b485cfc..9d8fcff 100644 --- a/ch12/ch12-06.md +++ b/ch12/ch12-06.md @@ -14,7 +14,7 @@ Unmarshal函数使用了反射机制类修改movie变量的每个成员,根据 词法分析器lexer使用了标准库中的text/scanner包将输入流的字节数据解析为一个个类似注释、标识符、字符串面值和数字面值之类的标记。输入扫描器scanner的Scan方法将提前扫描和返回下一个记号,对于rune类型。大多数记号,比如“(”,对应一个单一rune可表示的Unicode字符,但是text/scanner也可以用小的负数表示记号标识符、字符串等由多个字符组成的记号。调用Scan方法将返回这些记号的类型,接着调用TokenText方法将返回记号对应的文本内容。 -因为每个解析器可能需要多次使用当前的记号,但是Scan会一直向前扫描,所有我们包装了一个lexer扫描器辅助类型,用于跟踪最近由Scan方法返回的记号。 +因为每个解析器可能需要多次使用当前的记号,但是Scan会一直向前扫描,所以我们包装了一个lexer扫描器辅助类型,用于跟踪最近由Scan方法返回的记号。 gopl.io/ch12/sexpr ```Go diff --git a/ch4/ch4-04.md b/ch4/ch4-04.md index 65f7ba8..d33866e 100644 --- a/ch4/ch4-04.md +++ b/ch4/ch4-04.md @@ -123,7 +123,7 @@ func add(t *tree, value int) *tree { 结构体类型的零值是每个成员都是零值。通常会将零值作为最合理的默认值。例如,对于bytes.Buffer类型,结构体初始值就是一个随时可用的空缓存,还有在第9章将会讲到的sync.Mutex的零值也是有效的未锁定状态。有时候这种零值可用的特性是自然获得的,但是也有些类型需要一些额外的工作。 -如果结构体没有任何成员的话就是空结构体,写作struct{}。它的大小为0,也不包含任何信息,但是有时候依然是有价值的。有些Go语言程序员用map带模拟set数据结构时,用它来代替map中布尔类型的value,只是强调key的重要性,但是因为节约的空间有限,而且语法比较复杂,所有我们通常会避免这样的用法。 +如果结构体没有任何成员的话就是空结构体,写作struct{}。它的大小为0,也不包含任何信息,但是有时候依然是有价值的。有些Go语言程序员用map带模拟set数据结构时,用它来代替map中布尔类型的value,只是强调key的重要性,但是因为节约的空间有限,而且语法比较复杂,所以我们通常会避免这样的用法。 ```Go seen := make(map[string]struct{}) // set of strings diff --git a/ch7/ch7-09.md b/ch7/ch7-09.md index 3a0d543..36ccf82 100644 --- a/ch7/ch7-09.md +++ b/ch7/ch7-09.md @@ -279,7 +279,7 @@ func parseAndCheck(s string) (eval.Expr, error) { } ``` -为了编写这个web应用,所有我们需要做的就是下面这个plot函数,这个函数有和http.HandlerFunc相似的签名: +为了编写这个web应用,所以我们需要做的就是下面这个plot函数,这个函数有和http.HandlerFunc相似的签名: ```go func plot(w http.ResponseWriter, r *http.Request) {