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

icz*_*cza 4 platform go

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

https://golang.org/pkg/

这仅包含linuxplatform(GOOS),amd64archicture(GOARCH)上提供的包文档.

或者通过go doc命令离线,例如包的包doc syscall.

go doc syscall
Run Code Online (Sandbox Code Playgroud)

这显示了Go SDK平台的文档.

有些软件包根据我们的目标平台有不同的API,最着名的是syscall软件包.

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

icz*_*cza 5

1.在线

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

例如,要访问syscallWindows 64位平台的包文档,请访问:

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

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

2.离线

转到工具有默认的目标平台和架构可与被覆盖GOOSGOARCH环境变量.因此,默认情况下go doc syscall将显示默认平台和体系结构的包文档.

要获得其他平台和/或体系结构的文档,我们需要做的就是更改这些环境变量.

在unix系统(例如linux,OS-X)上,我们可以简单地将go doc命令添加到我们感兴趣的新平台/体系结构中,例如syscall用于Windows的包文档(在Linux上执行):

GOOS=windows go doc syscall
Run Code Online (Sandbox Code Playgroud)

这就是全部.要快速检查它是否有效,请打印DLL类型及其方法:

GOOS=windows go doc syscall DLL
Run Code Online (Sandbox Code Playgroud)

示例输出:

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)
Run Code Online (Sandbox Code Playgroud)

这包含在syscall包中:

细节因底层系统而异,默认情况下,godoc将显示当前系统的系统调用文档.如果您希望godoc显示另一个系统的系统调用文档,请将$ GOOS和$ GOARCH设置为所需的系统.例如,如果要在linux/amd64上查看freebsd/arm的文档,请将$ GOOS设置为freebsd,将$ GOARCH设置为arm.