我们可以在官方网站上在线访问 Go 的包文档:
https://golang.org/pkg/
这仅包含linux
平台(GOOS
)、amd64
架构(GOARCH
)上可用的软件包文档。
或通过go doc
命令离线,例如syscall
包的包文档。
go doc syscall
这显示了 Go SDK 平台的文档。
有些包根据我们针对的平台有不同的 API,最著名的是syscall
包。
我们如何在线和离线访问特定于平台的软件包文档?
1. 在线
在线,可以通过附加GOOS
和GOARCH
查询参数(类似于环境变量)在官方 Go 主页上访问特定于平台的文档。
例如,若要访问 Windows 64 位平台的syscall
包文档,请访问:
https://golang.org/pkg/syscall/?GOOS=windows&GOACH=amd64
要快速验证它是否有效,请搜索type DLL
短语(或简称DLL
),因为这些短语不会出现在 Linux 的 syscall 包中。
2. 离线
go 工具具有默认的目标平台和体系结构,可以使用GOOS
和GOARCH
环境变量覆盖。因此,默认情况下go doc syscall
将显示默认平台和体系结构的包文档。
要获取其他平台和/或架构的文档,我们需要做的就是更改这些环境变量。
在 unix 系统(例如 linux、OS-X)上,我们可以简单地在go doc
命令前面加上我们感兴趣的新平台/架构,例如 Windowssyscall
的包文档(在 Linux 上执行):
GOOS=windows go doc syscall
仅此而已。要快速检查它是否有效,请打印DLL
类型及其方法:
GOOS=windows go doc syscall DLL
示例输出:
type DLL struct {
Name string
Handle Handle
}
A DLL implements access to a single DLL.
func MustLoadDLL(name string) *DLL
func (d *DLL) FindProc(name string) (proc *Proc, err error)
func (d *DLL) MustFindProc(name string) *Proc
func (d *DLL) Release() (err error)
这记录在syscall
包中:
详细信息因底层系统而异,默认情况下,godoc 将显示当前系统的系统调用文档。如果您希望 godoc 显示另一个系统的系统调用文档,请将$GOOS和$GOARCH设置为所需的系统。例如,如果您想在 linux/amd64 上查看 freebsd/arm 的文档,请将 $GOOS 设置为 freebsd,$GOARCH设置为 arm。