8.1 文档与源代码
标准库里包含众多的包,不可能在一章内把这些包都讲一遍。目前,标准库里总共有超过 100 个包,这些包被分到 38 个类别里,如代码清单 8-1 所示。
代码清单 8-1 标准库里的顶级目录和包
archive bufio bytes compress container crypto database
debug encoding errors expvar flag fmt go
hash html image index io log math
mime net os path reflect regexp runtime
sort strconv strings sync syscall testing text
time unicode unsafe
代码清单 8-1 里列出的许多分类本身就是一个包。如果想了解所有包以及更详细的描述,Go 语言团队在网站上维护了一个文档,参见 http://golang.org/pkg/ 。
golang
网站的 pkg
页面提供了每个包的 godoc
文档。图 8-1 展示了 golang
网站上 io
包的文档。
图 8-1 golang.org/pkg/io/#Writer
如果想以交互的方式浏览文档,Sourcegraph 索引了所有标准库的代码,以及大部分包含 Go 代码的公开库。图 8-2 是 Sourcegraph 网站的一个例子,展示的是 io
包的文档。
图 8-2 sourcegraph.com/code.google.com/p/go/.GoPackage/io/.def/Writer
不管用什么方式安装 Go,标准库的源代码都会安装在$GOROOT/src/pkg 文件夹中。拥有标准库的源代码对 Go 工具正常工作非常重要。类似 godoc
、 gocode
甚至 go build
这些工具,都需要读取标准库的源代码才能完成其工作。如果源代码没有安装在以上文件夹中,或者无法通过 $GOROOT
变量访问,在试图编译程序时会产生错误。
作为 Go 发布包的一部分,标准库的源代码是经过预编译的。这些预编译后的文件,称作 归档文件 (archive file),可以在$GOROOT/pkg 文件夹中找到已经安装的各目标平台和操作系统的归档文件。在图 8-3 里,可以看到扩展名是.a 的文件,这些就是归档文件。
图 8-3 pkg 文件夹中的归档文件的文件夹的视图
这些文件是特殊的 Go 静态库文件,由 Go 的构建工具创建,并在编译和链接最终程序时被使用。归档文件可以让构建的速度更快。但是在构建的过程中,没办法指定这些文件,所以没办法与别人共享这些文件。Go 工具链知道什么时候可以使用已有的.a 文件,什么时候需要从机器上的源代码重新构建。
有了这些背景知识,让我们看一下标准库里的几个包,看看如何用这些包来构建自己的程序。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论