Есть ли способ в Go перечислить все стандартные / встроенные пакеты (то есть пакеты, которые устанавливаются вместе с установкой Go)?
У меня есть список пакетов, и я хочу выяснить, какие пакеты являются стандартными.
go
go-packages
Алок Кумар Сингх
источник
источник
Go
Пакеты по умолчанию golang.org/pkgisStandardPackage(importPath string) bool
которую я могу использовать?.
является либо собственным внутренним пакетом, либо частью стандартной библиотеки.Ответы:
Вы можете использовать новое
golang.org/x/tools/go/packages
для этого. Это обеспечивает программный интерфейс для большинства изgo list
:Чтобы получить его,
isStandardPackage()
вы можете сохранить его на карте, например так:источник
ok
взялся и нашел эту симпатичную статью. reddit.com/r/golang/comments/35d0b2/about_the_comma_ok_idiompackages.Load(nil, "std")
Вызов выполняетgo list
команду и разбирает вывод. Я отмечаю это для других, которые также могут ошибочно предположить, что пакет обеспечивает реализацию команды.Используйте
go list std
команду для вывода списка стандартных пакетов. Специальный путь импортаstd
распространяется на все пакеты в стандартной библиотеке Go ( doc ).Выполните эту команду, чтобы получить список в программе Go:
источник
Если вам нужно простое решение, вы можете проверить наличие пакета в $ GOROOT / pkg. Все стандартные пакеты установлены здесь.
источник