Импорт с алиасом
Импорт с алиасом в Go позволяет переименовать импортируемый пакет, чтобы использовать его под другим именем в коде. Это полезно, когда имена пакетов конфликтуют, или когда нужно сократить длинное имя пакета для удобства. Алиас указывается перед путем импорта.
Синтаксис
import alias "path/to/package"
Пример
Импортируем пакет fmt под алиасом f и используем его для вывода:
package main
import f "fmt"
func main() {
f.Println("Hello, World!")
}
Результат выполнения кода:
"Hello, World!"
Пример
Импортируем два пакета с одинаковым именем, используя алиасы для их различения:
package main
import (
"crypto/rand"
"math/rand"
)
func main() {
cryptoRand, _ := rand.Read(make([]byte, 10))
mathRand := rand.Intn(100)
fmt.Println(cryptoRand, mathRand)
}
Исправим конфликт с помощью алиасов:
package 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)
}
Пример
Используем алиас для сокращения длинного имени пакета:
package main
import (
"encoding/json"
"os"
)
func main() {
data := map[string]string{"key": "value"}
jsonData, _ := json.Marshal(data)
os.Stdout.Write(jsonData)
}
Сократим с помощью алиаса:
package 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,
которые доступны из других пакетов