Какова цель декларации пакета?

Каждый файл Go начинается сpackage <something>.

Насколько я понимаю - и это, вероятно, где я пропускаю некоторую информацию - есть только два возможных значения для<something>: Имя каталога, в котором он находится *, илиmain, Если этоmainвсе остальные файлы в этом каталоге могут иметь толькоmain, тоже. Если это что-то еще, проект противоречит соглашению.

Теперь, если это имя каталога, оно является избыточным, потому что та же информация содержится в имени каталога.

Если этоmainэто бесполезно, потому что, насколько я понимаю, невозможно сказать,go build чтобы "пожалуйста, построитьвсе main пакеты».

* Потому что, другими словами, один каталог - это один пакет.

Ответы на вопрос(2)

Ваш ответ на вопрос