Пустой идентификатор `_`
Часть раздела Логика и управление потоком путешествия по GO на Coddy. Урок 55 из 68.
Иногда пакет нужно импортировать не для использования его экспортируемых функций или переменных, а для запуска его побочных эффектов. Самый распространённый побочный эффект — выполнение функции init, которая запускается автоматически при импорте пакета.
В Go для этой цели предусмотрен пустой идентификатор _. Когда ты импортируешь пакет с помощью пустого идентификатора, Go импортирует пакет и выполняет любой код инициализации, но не требует от тебя использовать экспортируемые идентификаторы этого пакета.
import _ "database/sql/driver"Это особенно полезно, когда нужно, чтобы пакет зарегистрировался в другой системе или выполнил задачи настройки, но при этом вы напрямую не вызываете ни одну из его функций в своём коде. Без пустого идентификатора Go выдаст ошибку компиляции из-за импорта неиспользуемого пакета.
Пустой идентификатор сообщает Go: «Импортируй этот пакет ради его побочных эффектов, но я не буду напрямую обращаться к нему в своём коде». Так список импортов остаётся чистым, а нужная инициализация всё равно выполняется.
Попробуйте сами
В этом уроке нет задания по программированию.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Продвинутое управление потоком
Оператор switch с `fallthrough`Выход из вложенных цикловПереход к следующей итерации конкретного циклаОператор `goto`Повторение: расширенное управление циклами4Проект: простой список задач
Настройка проектаДобавление задачи2Структуры и методы
Определение методов для структурПолучатели-значенияПолучатели-указателиВыбор получателейМетоды и функцииПовторение: поведение структур5Карты: подробный разбор
Карты структурУказатели как значения картПроверка карт на nilСравнение картПовторение — счётчик частоты слов8Проект: простой складской учёт
Обзор проектаПроверка запасов3Интерфейсы (основы)
Что такое интерфейс?Определение интерфейсаРеализация интерфейсаИспользование типов интерфейсовПустой интерфейсУтверждения типовПереключатель типовПовторение — формы и поведение6Идиоматический Go: множества
Идиома множества в GoСоздание множестваДобавление элементов в множествоПроверка наличия элементаУдаление элемента из множестваПеребор элементов множестваПовторение — уникальные имена пользователей9Пакеты и область видимости
Что такое пакет?Экспортируемые и неэкспортируемыеСоздание простого пакетаПсевдонимы пакетовПустой идентификатор `_`Функция `init`Повторение — создание утилитыПотренируйтесь самостоятельно: Онлайн-компилятор Go