Пустой импорт _
Пустой импорт (blank import) в Go — это импорт пакета с использованием
символа подчеркивания _ в качестве псевдонима. Он используется,
когда необходимо импортировать пакет исключительно для выполнения его
функции init или регистрации компонентов, но сам пакет не
используется непосредственно в коде. Первым аргументом выступает
сам импорт, а вторым — путь к пакету.
Синтаксис
import _ "path/to/package"
Пример
Давайте импортируем пакет только для инициализации его внутренних структур:
package main
import (
"fmt"
_ "example.com/mydb"
)
func main() {
fmt.Println("Application started")
}
Результат выполнения кода:
"Database driver registered"
"Application started"
Пример
Рассмотрим ситуацию, когда пустой импорт используется для автоматической регистрации формата изображений:
package main
import (
"fmt"
"image"
_ "image/png"
)
func main() {
formats := image.RegisteredFormats()
fmt.Println(formats)
}
Результат выполнения кода:
"png"
Пример
Пустой импорт можно использовать для выполнения нескольких инициализирующих функций из разных пакетов:
package main
import (
"fmt"
_ "example.com/logger"
_ "example.com/metrics"
)
func main() {
fmt.Println("All packages initialized")
}
Результат выполнения кода:
"Logger initialized"
"Metrics collector started"
"All packages initialized"
Смотрите также
-
статью
init,
о функции инициализации пакета -
статью
init-order,
о порядке вызова функций init -
статью
import-alias,
о псевдонимах при импорте -
статью
dot-import,
о точечном импорте