Что означают три точки "./..." в вызовах командной строки Go?
Если вы запускаете тесты Golang на Travis CI, он будет загружать все ваши зависимости с тремя точками:
go get -d -v ./... && go build -v ./...
Что означает ./...
для указания или расширения? Я провел некоторое исследование, но, похоже, это не соглашение Unix.
Ответы
Ответ 1
Из команды go help packages
:
Путь импорта - это шаблон, если он содержит одну или несколько подстановочных знаков "...", каждая из которых может соответствовать любой строке, включая пустую строку и строки, содержащие косые черты. Такой шаблон расширяется для всех пакетов каталоги, найденные в деревьях GOPATH с именами, соответствующими узоры. В качестве специального случая x/... соответствует x, а также x подкаталогам. Например, net/... расширяет сеть и пакеты в своих подкаталогах.
Ответ 2
go [command] ./...
Здесь ./
говорит, чтобы начать с текущей папки, ...
говорит, чтобы перейти рекурсивно.
Пример:
go list ...
В любой папке перечислены все пакеты, включая пакеты стандартной библиотеки, а затем внешние библиотеки в рабочей области go.