From e0bb46ea95389af720f20c2d4b1a6c7fa11e03b3 Mon Sep 17 00:00:00 2001 From: Hanlei Qin Date: Fri, 15 Dec 2017 14:19:27 +0800 Subject: [PATCH 1/5] Update ch12-07.md --- ch12/ch12-07.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ch12/ch12-07.md b/ch12/ch12-07.md index c0fe40b..157e538 100644 --- a/ch12/ch12-07.md +++ b/ch12/ch12-07.md @@ -1,6 +1,6 @@ ## 12.7. 获取结构体字段标识 -在4.5节我们使用构体成员标签用于设置对应JSON对应的名字。其中json成员标签让我们可以选择成员的名字和抑制零值成员的输出。在本节,我们将看到如果通过反射机制类获取成员标签。 +在4.5节我们使用构体成员标签用于设置对应JSON对应的名字。其中json成员标签让我们可以选择成员的名字和抑制零值成员的输出。在本节,我们将看到如何通过反射机制类获取成员标签。 对于一个web服务,大部分HTTP处理函数要做的第一件事情就是展开请求中的参数到本地变量中。我们定义了一个工具函数,叫params.Unpack,通过使用结构体成员标签机制来让HTTP处理函数解析请求参数更方便。 From b2792e2ea827e4e5a2c4d93d2e162987642a0309 Mon Sep 17 00:00:00 2001 From: Hanlei Qin Date: Fri, 15 Dec 2017 14:22:51 +0800 Subject: [PATCH 2/5] Update ch12-07.md --- ch12/ch12-07.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ch12/ch12-07.md b/ch12/ch12-07.md index c0fe40b..e85dbcf 100644 --- a/ch12/ch12-07.md +++ b/ch12/ch12-07.md @@ -1,4 +1,4 @@ -## 12.7. 获取结构体字段标识 +## 12.7. 获取结构体字段标签 在4.5节我们使用构体成员标签用于设置对应JSON对应的名字。其中json成员标签让我们可以选择成员的名字和抑制零值成员的输出。在本节,我们将看到如果通过反射机制类获取成员标签。 From fc760171e15c47daf1449d654472c8b89a019e89 Mon Sep 17 00:00:00 2001 From: Hanlei Qin Date: Fri, 15 Dec 2017 14:24:25 +0800 Subject: [PATCH 3/5] Update SUMMARY.md --- SUMMARY.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SUMMARY.md b/SUMMARY.md index 7fe80e7..3ef9266 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -113,7 +113,7 @@ * [示例: 编码S表达式](ch12/ch12-04.md) * [通过reflect.Value修改值](ch12/ch12-05.md) * [示例: 解码S表达式](ch12/ch12-06.md) - * [获取结构体字段标识](ch12/ch12-07.md) +  * [获取结构体字段标签](ch12/ch12-07.md) * [显示一个类型的方法集](ch12/ch12-08.md) * [几点忠告](ch12/ch12-09.md) * [底层编程](ch13/ch13.md) From 81a0ef33172cb952fabbb76b03f084364bba4423 Mon Sep 17 00:00:00 2001 From: Hanlei Qin Date: Fri, 15 Dec 2017 14:46:04 +0800 Subject: [PATCH 4/5] Update ch12-09.md --- ch12/ch12-09.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ch12/ch12-09.md b/ch12/ch12-09.md index 7dceca9..1c6ae4b 100644 --- a/ch12/ch12-09.md +++ b/ch12/ch12-09.md @@ -16,5 +16,5 @@ fmt.Printf("%d %s\n", "hello", 42) // "%!d(string=hello) %!s(int=42)" 避免使用反射的第二个原因是,即使对应类型提供了相同文档,但是反射的操作不能做静态类型检查,而且大量反射的代码通常难以理解。总是需要小心翼翼地为每个导出的类型和其它接受interface{}或reflect.Value类型参数的函数维护说明文档。 -第三个原因,基于反射的代码通常比正常的代码运行速度慢一到两个数量级。对于一个典型的项目,大部分函数的性能和程序的整体性能关系不大,所以使用反射可能会使程序更加清晰。测试是一个特别适合使用反射的场景,因为每个测试的数据集都很小。但是对于性能关键路径的函数,最好避免使用反射。 +第三个原因,基于反射的代码通常比正常的代码运行速度慢一到两个数量级。对于一个典型的项目,大部分函数的性能和程序的整体性能关系不大,所以当反射能使程序更加清晰的时候可以考虑使用。测试是一个特别适合使用反射的场景,因为每个测试的数据集都很小。但是对于性能关键路径的函数,最好避免使用反射。 From 3f8f4a05313207adb70658689cca917d63fc6016 Mon Sep 17 00:00:00 2001 From: wukoo Date: Mon, 1 Jan 2018 16:43:56 +0800 Subject: [PATCH 5/5] Update ch5-04-1.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 翻译错误。 --- ch5/ch5-04-1.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ch5/ch5-04-1.md b/ch5/ch5-04-1.md index 1a5a625..34c00fc 100644 --- a/ch5/ch5-04-1.md +++ b/ch5/ch5-04-1.md @@ -11,7 +11,7 @@ if err != nil{ } ``` -当对html.Parse的调用失败时,findLinks不会直接返回html.Parse的错误,因为缺少两条重要信息:1、错误发生在解析器;2、url已经被解析。这些信息有助于错误的处理,findLinks会构造新的错误信息返回给调用者: +当对html.Parse的调用失败时,findLinks不会直接返回html.Parse的错误,因为缺少两条重要信息:1、发生错误时的解析器(html parser);2、发生错误的url。因此,findLinks构造了一个新的错误信息,既包含了这两项,也包括了底层的解析出错的信息。 ```Go doc, err := html.Parse(resp.Body)