Go имеет очень удобную встроенную подкоманду list для такого рода задач.
Попробуйте выполнить:
go list ./...
Это даст вам список всех пакеты в текущем каталоге. Вы можете тривиально связать это с такой утилитой, как wc
, чтобы получить желаемый ответ:
go list ./... | wc -l
Вы всегда можете передать путь к пакету для проверки, но /...
в конце сообщает go рекурсивный. Вы можете также запустить go help packages
для получения дополнительной информации.
Есть еще сложных действий , которые вы можете выполнить с go list
фильтрацией, которые могут вас заинтересовать.