¿Hay alguna manera en Go para enumerar todos los paquetes estándar / integrados (es decir, los paquetes que vienen instalados con una instalación Go)?
Tengo una lista de paquetes y quiero averiguar qué paquetes son estándar.
go
go-packages
Alok Kumar Singh
fuente
fuente
Go
Paquetes predeterminados golang.org/pkgisStandardPackage(importPath string) bool
que puedo usar?.
es un paquete interno propio o una parte de la biblioteca estándar.Respuestas:
Puedes usar lo nuevo
golang.org/x/tools/go/packages
para esto. Esto proporciona una interfaz programática para la mayoría dego list
:Para obtener un
isStandardPackage()
puede almacenarlo en un mapa, así:fuente
ok
viene y encontré este bonito artículo. reddit.com/r/golang/comments/35d0b2/about_the_comma_ok_idiompackages.Load(nil, "std")
llamada ejecuta elgo list
comando y analiza la salida. Tomo nota de esto para otros que también pueden suponer incorrectamente que el paquete proporciona la implementación del comando.Use el
go list std
comando para enumerar los paquetes estándar. La ruta de importación especial sestd
expande a todos los paquetes en la biblioteca Go estándar ( doc ).Ejecute ese comando para obtener la lista en un programa Go:
fuente
Si desea una solución simple, puede verificar si un paquete está presente en $ GOROOT / pkg. Todos los paquetes estándar están instalados aquí.
fuente