Ответ 1
Ответ на Wiki, пожалуйста, не стесняйтесь добавлять/редактировать.
Модульность
-
Несколько файлов в одном пакете
- Это то, на что похоже. Куча файлов в том же каталоге, который начинается с одной и той же директивы
package <name>
, означает, что они рассматриваются как один большой набор кода Go. Вы можете прозрачно вызывать функции вa.go
отb.go
. Это в основном для организации кода. - Вымышленным примером может быть пакет "блог", который может быть выложен с помощью
blog.go
(основного файла),entry.go
иserver.go
. Это вам. Хотя вы можете написать блог-пакет в одном большом файле, это имеет тенденцию влиять на читаемость.
- Это то, на что похоже. Куча файлов в том же каталоге, который начинается с одной и той же директивы
-
Несколько пакетов
- Стандартная библиотека выполняется таким образом. В основном вы создаете модули и, возможно, устанавливаете их в
$GOROOT
. Любая программа, которую вы пишете, можетimport "<name>"
, а затем вызвать<name>.someFunction()
- На практике любые автономные или общие компоненты должны быть скомпилированы в пакеты. Вернемся к предыдущему блогу. Если вы хотите добавить ленту новостей, вы можете реорганизовать server.go в пакет. Тогда оба
blog.go
иnews.go
будут обаimport "server"
.
- Стандартная библиотека выполняется таким образом. В основном вы создаете модули и, возможно, устанавливаете их в
Компиляция
В настоящее время я использую gomake с Makefile. Установка Go включает в себя некоторые замечательные файлы include, которые упрощают создание пакета или команды. Это не сложно и лучший способ ускориться с ними - просто взглянуть на образцы make файлов из проектов с открытым исходным кодом и прочитать "Как написать код перехода" .