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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何访问特定于平台的包文档?相关的知识,希望对你有一定的参考价值。

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

https://golang.org/pkg/

这仅包含linux平台(GOOS),amd64 archicture(GOARCH)上提供的包文档。

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

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命令添加到我们感兴趣的新平台/架构中,例如,用于Windows的syscall包文档(在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。

以上是关于如何访问特定于平台的包文档?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Flutter 中为 Web 编写特定于平台的代码?

在跨平台 xamarin 项目中编写特定于平台的代码

您可以在 PhoneGap 中添加特定于平台的代码吗?

初入MAUI如何添加特定于平台的自定义,2种方式,多种语法

如何使用特定于州的代理?

Windows 7 上 Delphi 6 中的“特定于平台”警告