Любая программа на Go включает один или несколько пакетов. Пакет, к которому относится файл исходного кода, задаётся описанием package в начале файла. Имена пакетов имеют те же ограничения, что и идентификаторы, но могут содержать буквы только нижнего регистра. Любые глобальные объекты (переменные, типы, интерфейсы, функции, методы, элементы структур и интерфейсов) доступны без ограничений в пакете, в котором они объявлены. Глобальные объекты, имена которых начинаются на заглавную букву, являются экспортируемыми.
Для использования в файле кода Go объектов, экспортированных другим пакетом, пакет должен быть импортирован, для чего применяется конструкция import. В ней перечисляются пути к импорируемым пакетам от каталога src в дереве исходных текстов, положение которого задаётся переменной среды GOPATH, а для стандартных пакетов достаточно указать имя.
Использование импортируемых пакетов в Go контролируется строже, чем в большинстве языков. Если пакет импортирован, то в коде должно использоваться хотя бы одно экспортируемое этим пакетом имя. Компилятор Go считает импорт неиспользуемого пакета ошибкой; такое решение вынуждает разработчика постоянно поддерживать актуальность списков импорта.
Исполняемая программа на Go обязательно содержит пакет с именем main, в котором обязательно должна быть функция main() без параметров и возвращаемого значения. Функция main.main() является «телом программы» — её код запускается, когда программа стартует. Любой пакет может содержать функцию init() — она будет запущена при загрузке программы перед началом её исполнения, до вызова любой функции в данном пакете и в любом пакете, импортирующем данный. Инициализация пакета main всегда происходит последней, и все инициализации выполняются до начала исполнения функции main.main().
Использование импортируемых пакетов в Go контролируется строже, чем в большинстве языков. Если пакет импортирован, то в коде должно использоваться хотя бы одно экспортируемое этим пакетом имя. Компилятор Go считает импорт неиспользуемого пакета ошибкой; такое решение вынуждает разработчика постоянно поддерживать актуальность списков импорта.
Исполняемая программа на Go обязательно содержит пакет с именем main, в котором обязательно должна быть функция main() без параметров и возвращаемого значения. Функция main.main() является «телом программы» — её код запускается, когда программа стартует. Любой пакет может содержать функцию init() — она будет запущена при загрузке программы перед началом её исполнения, до вызова любой функции в данном пакете и в любом пакете, импортирующем данный. Инициализация пакета main всегда происходит последней, и все инициализации выполняются до начала исполнения функции main.main().
Komentāri
Ierakstīt komentāru