Какова цель декларации пакета?
Каждый файл Go начинается сpackage <something>
.
Насколько я понимаю - и это, вероятно, где я пропускаю некоторую информацию - есть только два возможных значения для<something>
: Имя каталога, в котором он находится *, илиmain
, Если этоmain
все остальные файлы в этом каталоге могут иметь толькоmain
, тоже. Если это что-то еще, проект противоречит соглашению.
Теперь, если это имя каталога, оно является избыточным, потому что та же информация содержится в имени каталога.
Если этоmain
это бесполезно, потому что, насколько я понимаю, невозможно сказать,go build
чтобы "пожалуйста, построитьвсе main
пакеты».
* Потому что, другими словами, один каталог - это один пакет.