第5章,部分字词修订。

This commit is contained in:
zhliner
2017-08-24 22:27:42 +08:00
parent 9c0723ff6a
commit ff3c5b0a70
11 changed files with 27 additions and 30 deletions

View File

@@ -4,7 +4,7 @@
下文的示例代码使用了非标准包 golang.org/x/net/html 解析HTML。golang.org/x/... 目录下存储了一些由Go团队设计、维护对网络编程、国际化文件处理、移动平台、图像处理、加密解密、开发者工具提供支持的扩展包。未将这些扩展包加入到标准库原因有二一是部分包仍在开发中二是对大多数Go语言的开发者而言扩展包提供的功能很少被使用。
例子中调用golang.org/x/net/html的部分api如下所示。html.Parse函数读入一组bytes.解析后返回html.node类型的HTML页面树状结构根节点。HTML拥有很多类型的结点如text文本,commnets注释类型在下面的例子中我们 只关注< name key='value' >形式的结点。
例子中调用golang.org/x/net/html的部分api如下所示。html.Parse函数读入一组bytes解析后返回html.Node类型的HTML页面树状结构根节点。HTML拥有很多类型的结点如text文本,commnets注释类型在下面的例子中我们 只关注< name key='value' >形式的结点。
<u><i>golang.org/x/net/html</i></u>
```Go
@@ -151,7 +151,7 @@ $ ./fetch https://golang.org | ./outline
正如你在上面实验中所见大部分HTML页面只需几层递归就能被处理但仍然有些页面需要深层次的递归。
大部分编程语言使用固定大小的函数调用栈常见的大小从64KB到2MB不等。固定大小栈会限制递归的深度当你用递归处理大量数据时需要避免栈溢出除此之外还会导致安全性问题。与相反,Go语言使用可变栈栈的大小按需增加(初始时很小)。这使得我们使用递归时不必考虑溢出和安全问题。
大部分编程语言使用固定大小的函数调用栈常见的大小从64KB到2MB不等。固定大小栈会限制递归的深度当你用递归处理大量数据时需要避免栈溢出除此之外还会导致安全性问题。与相反Go语言使用可变栈栈的大小按需增加(初始时很小)。这使得我们使用递归时不必考虑溢出和安全问题。
**练习 5.1** 修改findlinks代码中遍历n.FirstChild链表的部分将循环调用visit改成递归调用。