Импорт с алиасом

Импорт с алиасом в Go позволяет переименовать импортируемый пакет, чтобы использовать его под другим именем в коде. Это полезно, когда имена пакетов конфликтуют, или когда нужно сократить длинное имя пакета для удобства. Алиас указывается перед путем импорта.

Синтаксис

goimport alias "path/to/package"

Пример

Импортируем пакет fmt под алиасом f и используем его для вывода:

gopackage main

import f "fmt"

func main() {
  f.Println("Hello, World!")
}

Результат выполнения кода:

go"Hello, World!"

Пример

Импортируем два пакета с одинаковым именем, используя алиасы для их различения:

gopackage main

import (
  "crypto/rand"
  "math/rand"
)

func main() {
  cryptoRand, _ := rand.Read(make([]byte, 10))
  mathRand := rand.Intn(100)
  fmt.Println(cryptoRand, mathRand)
}

Исправим конфликт с помощью алиасов:

gopackage main

import (
  cryptoRand "crypto/rand"
  mathRand "math/rand"
)

func main() {
  bytes := make([]byte, 10)
  cryptoRand.Read(bytes)
  randomNum := mathRand.Intn(100)
  fmt.Println(bytes, randomNum)
}

Пример

Используем алиас для сокращения длинного имени пакета:

gopackage main

import (
  "encoding/json"
  "os"
)

func main() {
  data := map[string]string{"key": "value"}
  jsonData, _ := json.Marshal(data)
  os.Stdout.Write(jsonData)
}

Сократим с помощью алиаса:

gopackage main

import (
  j "encoding/json"
  "os"
)

func main() {
  data := map[string]string{"key": "value"}
  jsonData, _ := j.Marshal(data)
  os.Stdout.Write(jsonData)
}

Смотрите также

  • импорт с точкой dot-import,
    который позволяет использовать экспортированные имена без квалификатора
  • импорт с подчеркиванием blank-import,
    который импортирует пакет только ради его побочных эффектов
  • области видимости пакета package-scope,
    которая описывает видимость переменных на уровне пакета
  • экспортированные имена exported,
    которые доступны из других пакетов