Эта мощная функция поможет вам писать организованный, многоразовый и эффективный код.
Добро пожаловать в мир пакетов и импорта в Go! Точно так же, как хорошо организованная книжная полка или аккуратно рассортированный ящик для носков, ваш код Go также заслуживает правильной организации. В этой главе мы увидим процесс организации и совместного использования вашего кода с помощью пакетов и импорта. Мы также рассмотрим, как эффективно создавать, использовать и распространять пакеты.
Создание вашего первого пакета
Представьте, что вы создали фантастическую коллекцию служебных функций, которые хотите повторно использовать в нескольких проектах. Как вы держите их организованными и доступными? Вот где на помощь приходят пакеты!
Пакет — это просто набор связанных файлов кода Go. По соглашению все файлы в пакете должны быть помещены в один каталог, а имя пакета должно совпадать с именем каталога.
Давайте создадим простой пакет под названием «утилиты», который содержит функцию для сложения двух чисел. Начните с создания нового каталога с именем «utilities» и создайте в нем файл с именем «utilities.go»:
// Package utilities provides useful utility functions package utilities // Add adds two integers and returns the result func Add(a, b int) int { return a + b }
Мы начнем с определения имени пакета с помощью ключевого слова package
, за которым следует краткое описание пакета в комментарии. Затем мы определяем функцию Add
.
Импорт и использование пакетов
Теперь, когда мы создали наш пакет «утилиты», давайте посмотрим, как мы можем использовать его в другой программе. Создайте новый файл с именем «main.go» в родительском каталоге «utilities»:
package main import ( "fmt" "example.com/yourusername/utilities" ) func main() { result := utilities.Add(10, 5) fmt.Println("10 + 5 =", result) }
Во-первых, мы импортируем пакет «утилиты», используя ключевое слово import
, после чего в скобках указывается путь к пакету. Путь к пакету обычно представляет собой URL-адрес, указывающий на расположение пакета, например, в системе контроля версий, такой как GitHub или GitLab. Для локальных пакетов вы можете использовать относительный путь импорта или настроить локальный модуль. В этом примере мы используем URL-адрес заполнителя для представления пути к пакету.
Далее мы используем функцию Add
из пакета 'utilities', добавляя к имени функции префикс имени пакета: utilities.Add()
. Затем печатаем результат.
Общедоступные и частные идентификаторы
В Go идентификатор (например, переменная, функция или тип) может быть общедоступным (экспортируемым) или закрытым (неэкспортируемым) в зависимости от его имени:
- Общедоступные идентификаторы начинаются с заглавной буквы, что делает их доступными из других пакетов.
- Частные идентификаторы начинаются со строчной буквы, что ограничивает их доступность пакетом, в котором они определены.
В нашем пакете «утилиты» функция Add
начинается с заглавной буквы, что означает, что к ней можно получить доступ из других пакетов, таких как наш «основной» пакет.
// This is a public function (exported) func Add(a, b int) int { return a + b } // This is a private function (unexported) func subtract(a, b int) int { return a - b }
В этом примере функция subtract
является частной и не может быть доступна за пределами пакета «утилиты».
Заключение
Теперь у вас есть знания для создания и использования пакетов в Go. Эта мощная функция поможет вам писать организованный, многократно используемый и эффективный код. Продолжая изучать Go, вы столкнетесь с многочисленными пакетами стандартных библиотек и сторонними пакетами, которые упростят и улучшат ваш опыт программирования. Так что давай
Привет, уважаемый энтузиаст среды! Вам понравился контент, который вы только что прочитали? Если это так, пожалуйста, хлопните в ладоши, поделитесь своими мыслями в комментариях, подпишитесь на автора, чтобы оставаться в курсе, и купите мне кофе, нажав на ссылку ниже :)