Как получить доступ к документации пакета конкретной платформы? - PullRequest
0 голосов
/ 25 сентября 2018

Мы можем получить доступ к документации пакета Go онлайн на официальном сайте:

https://golang.org/pkg/

Содержит только документацию пакета, доступную на платформе linux (GOOS), amd64 archicture (GOARCH).

Или в автономном режиме с помощью команды go doc, например, пакет документов из пакета syscall.

go doc syscall

Thisпоказывает документацию для платформы Go SDK.

Некоторые пакеты имеют разные API в зависимости от платформы, на которую мы нацелены, наиболее известным является пакет syscall.

Как мы можем получить доступ к пакету, специфичному для платформыдокументация онлайн и офлайн?

1 Ответ

0 голосов
/ 25 сентября 2018

1.Онлайн

Онлайн, документацию для конкретной платформы можно найти на официальной домашней странице Go, добавив параметры запроса GOOS и GOARCH, аналогичные переменным среды.

Например,чтобы получить доступ к документации syscall для 64-битной платформы Windows, посетите:

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

Чтобы быстро убедиться, что это работает, найдите фразу type DLL (или просто *).1014 *), поскольку они отсутствуют в пакете системных вызовов linux.

2.Offline

У инструмента go есть целевая платформа и архитектура по умолчанию, которые можно переопределить с помощью переменных среды GOOS и GOARCH.Поэтому по умолчанию go doc syscall покажет документацию пакета для платформы и архитектуры по умолчанию.

Чтобы получить документацию для других платформ и / или архитектур, все, что нам нужно сделать, это изменить эти переменные среды.

В Unix-системах (например, Linux, OS-X) мы можем просто добавить команду go doc к новой платформе / архитектуре, которая нас интересует, например, пакет документов syscall для 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:

Детали варьируются в зависимости от базовой системы, и по умолчанию godoc отображает документацию по системному вызову для текущей системы.Если вы хотите, чтобы godoc отображал документацию по системным вызовам для другой системы, установите $ GOOS и $ GOARCH для нужной системы.Например, если вы хотите просмотреть документацию для freebsd / arm в linux / amd64, установите $ GOOS для freebsd и $ GOARCH для arm.

...