如何访问特定于平台的包文档?

How to access platform specific package documentation?

我们可以在官网在线访问Go的包文档:

https://golang.org/pkg/

这仅包含 linux 平台 (GOOS)、amd64 架构 (GOARCH) 上可用的包文档。

或通过 go doc 命令离线,例如 syscall 包的包文档。

go doc syscall

这里显示了 Go SDK 平台的文档。

有些包根据我们的目标平台有不同的 API,最著名的是 syscall 包。

我们如何在线和离线访问平台特定的包文档?

1。在线

在线,可以在官方 Go 主页上访问特定于平台的文档,方法是附加 GOOSGOARCH 查询参数,类似于环境变量。

例如,要访问 Windows 64 位平台的 syscall 软件包文档,请访问:

https://golang.org/pkg/syscall/?GOOS=windows&GOACH=amd64

要快速验证它是否有效,请搜索 type DLL 短语(或简称 DLL),因为它们不会出现在 linux 的系统调用包中。

2。离线

go 工具有默认的目标平台和架构,可以用 GOOSGOARCH 环境变量覆盖。所以默认情况下 go doc syscall 将显示默认平台和架构的包文档。

要获取其他平台和/或架构的文档,我们需要做的就是更改那些环境变量。

在 unix 系统上(例如 linux、OS-X),我们可以简单地在 go doc 命令前加上我们感兴趣的新平台/架构,例如syscall for Windows 的包文档(在 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 包中:

The details vary depending on the underlying system, and by default, godoc will display the syscall documentation for the current system. If you want godoc to display syscall documentation for another system, set $GOOS and $GOARCH to the desired system. For example, if you want to view documentation for freebsd/arm on linux/amd64, set $GOOS to freebsd and $GOARCH to arm.