Имя пакета test
не является неправильным, оно действует в соответствии с Спецификация: Предложение пакета:
PackageClause = "package" PackageName .
PackageName = identifier .
test
является действительным идентификатором Go.
Относительно того, что делает go build main.go
? 1011 *
Обычно вы перечисляете пакеты в go build
, но вы также можете перечислить .go
исходные файлы, как в вашем примере.
Цитирование из go help build
:
Если аргументы для сборки представляют собой список файлов .go, сборка обрабатывает их как список исходных файлов с указанием одного пакета.
* 1023Так что
go build
просто собрал ваш
test
пакет, состоящий из одного
main.go
исходного файла.Не является ошибкой добавлять функцию
main()
в пакет, который не является
main
.
Относительно того, почему «ничего» не происходит: go build
не генерирует вывод, если все в порядке, и выводитошибка, если что-то не так.go build
, примененный к пакету, отличному от main
, просто «проверяет», может ли пакет быть собран, но отбрасывает результат.Пожалуйста, отметьте Что такое build build?