Когда программа на Go становится больше, чем один файл, важно научиться организовывать код. В Go это делается с помощью пакетов и модулей.
🗂 Что такое пакет (package)?
Пакет — это логическая группа файлов Go. Каждый файл начинается с указания пакета:
package main
Файлы с package main
содержат функцию main()
и запускаются как исполняемая программа. Остальные пакеты — библиотечные, и могут быть переиспользованы.
Например:
package mathutils
func Add(a, b int) int {
return a + b
}
Чтобы использовать этот пакет в другом месте:
import "myproject/mathutils"
result := mathutils.Add(2, 3)
🧱 Что такое модуль?
Модуль — это коллекция пакетов. Он управляется через файл go.mod
, который описывает имя модуля и его зависимости.
Чтобы создать модуль:
go mod init myproject
Это создаст файл go.mod
со строкой:
module myproject
Теперь ты можешь импортировать свои пакеты с префиксом myproject/
, а также подключать сторонние библиотеки.
📥 Добавление зависимостей
В Go не нужно скачивать зависимости вручную. Достаточно просто импортировать нужный пакет, а затем запустить:
go get github.com/some/package
Это добавит библиотеку в go.mod
и скачает её в go.sum
(файл контрольных сумм).
Пример:
import "github.com/fatih/color"
go get github.com/fatih/color
После этого ты можешь использовать библиотеку:
color.Red("Ошибка!")
🧹 Полезные команды
go mod init <имя>
— инициализирует модульgo get <путь>
— добавляет внешнюю зависимостьgo mod tidy
— чиститgo.mod
, удаляя неиспользуемое и добавляя недостающееgo list -m all
— список всех зависимостей
📌 Главное из главы
- Код в Go организуется в пакеты, а весь проект — в модуль.
go.mod
управляет зависимостями проекта.- Сторонние библиотеки можно легко добавить с помощью
go get
. - Команда
go mod tidy
приводит список зависимостей в порядок.