Основы синтаксиса Строки и руны Массивы и слайсы Map Структуры и методы Интерфейсы Горутины и конкурентность Каналы defer, panic, recover Обработка ошибок Указатели Пакет sync Тестирование Пакеты и модули Стандартная библиотека Context Generics iota и перечисления Разное / продвинутое

Пакеты и модули

6 вопросов

Система модулей Go: go.mod, go.sum, go mod tidy, vendor. Функция init(), экспорт через заглавную букву, организация кода в пакеты.

1 Что делает go mod init? 🟢 Лёгкий
Ответ: B) Инициализирует модуль Go

go mod init example.com/myapp создаёт файл go.mod, определяющий модуль и его зависимости. Модули - стандартная система управления зависимостями с Go 1.11+.

Подробнее →
2 Где хранятся скачанные зависимости? 🟡 Средний
Ответ: B) В $GOPATH/pkg/mod

Go кеширует скачанные модули в $GOPATH/pkg/mod (по умолчанию ~/go/pkg/mod). Это глобальный кеш, общий для всех проектов. vendor/ - опциональная локальная копия.

Подробнее →
3 Что делает go mod tidy? 🟡 Средний
Ответ: B) Добавляет недостающие и убирает лишние зависимости

go mod tidy анализирует импорты в коде, добавляет отсутствующие зависимости в go.mod и удаляет неиспользуемые. Также обновляет go.sum. Рекомендуется запускать после добавления/удаления импортов.

Подробнее →
4 Что делает функция init()? 🟡 Средний
Ответ: B) Автоматически вызывается при загрузке пакета

init() выполняется автоматически при импорте пакета, до main(). Используется для инициализации: регистрация драйверов, настройка глобальных переменных. Не принимает аргументов и не возвращает значений.

Подробнее →
5 Можно ли в пакете несколько функций init()? 🔴 Сложный
Ответ: B) Да

В одном файле и пакете может быть несколько init(). Они выполняются в порядке объявления (внутри файла) и в алфавитном порядке файлов (внутри пакета).

Подробнее →
6 Как сделать идентификатор экспортируемым? 🟢 Лёгкий
Ответ: B) Начать имя с заглавной буквы

В Go нет ключевых слов public/private. Экспортируемость определяется регистром: MyFunc - публичная, myFunc - приватная (видна только внутри пакета).

Подробнее →