返回介绍

8.1 文档与源代码

发布于 2024-10-11 12:39:09 字数 1884 浏览 0 评论 0 收藏 0

标准库里包含众多的包,不可能在一章内把这些包都讲一遍。目前,标准库里总共有超过 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 包的文档。

0801.tif

图 8-1 golang.org/pkg/io/#Writer

如果想以交互的方式浏览文档,Sourcegraph 索引了所有标准库的代码,以及大部分包含 Go 代码的公开库。图 8-2 是 Sourcegraph 网站的一个例子,展示的是 io 包的文档。

0802.tif

图 8-2 sourcegraph.com/code.google.com/p/go/.GoPackage/io/.def/Writer

不管用什么方式安装 Go,标准库的源代码都会安装在$GOROOT/src/pkg 文件夹中。拥有标准库的源代码对 Go 工具正常工作非常重要。类似 godocgocode 甚至 go build 这些工具,都需要读取标准库的源代码才能完成其工作。如果源代码没有安装在以上文件夹中,或者无法通过 $GOROOT 变量访问,在试图编译程序时会产生错误。

作为 Go 发布包的一部分,标准库的源代码是经过预编译的。这些预编译后的文件,称作 归档文件 (archive file),可以在$GOROOT/pkg 文件夹中找到已经安装的各目标平台和操作系统的归档文件。在图 8-3 里,可以看到扩展名是.a 的文件,这些就是归档文件。

0803.tif

图 8-3 pkg 文件夹中的归档文件的文件夹的视图

这些文件是特殊的 Go 静态库文件,由 Go 的构建工具创建,并在编译和链接最终程序时被使用。归档文件可以让构建的速度更快。但是在构建的过程中,没办法指定这些文件,所以没办法与别人共享这些文件。Go 工具链知道什么时候可以使用已有的.a 文件,什么时候需要从机器上的源代码重新构建。

有了这些背景知识,让我们看一下标准库里的几个包,看看如何用这些包来构建自己的程序。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文