This commit is contained in:
Xargin
2016-08-10 23:15:55 +08:00
parent da5d8dda79
commit 32de28979e
3 changed files with 3 additions and 3 deletions
+1 -1
View File
@@ -14,7 +14,7 @@ Unmarshal函数使用了反射机制类修改movie变量的每个成员,根据
词法分析器lexer使用了标准库中的text/scanner包将输入流的字节数据解析为一个个类似注释、标识符、字符串面值和数字面值之类的标记。输入扫描器scanner的Scan方法将提前扫描和返回下一个记号,对于rune类型。大多数记号,比如“(”,对应一个单一rune可表示的Unicode字符,但是text/scanner也可以用小的负数表示记号标识符、字符串等由多个字符组成的记号。调用Scan方法将返回这些记号的类型,接着调用TokenText方法将返回记号对应的文本内容。
因为每个解析器可能需要多次使用当前的记号,但是Scan会一直向前扫描,所我们包装了一个lexer扫描器辅助类型,用于跟踪最近由Scan方法返回的记号。
因为每个解析器可能需要多次使用当前的记号,但是Scan会一直向前扫描,所我们包装了一个lexer扫描器辅助类型,用于跟踪最近由Scan方法返回的记号。
<u><i>gopl.io/ch12/sexpr</i></u>
```Go
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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) {