РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
19 of 1593 menu

Объявление пакета package

Объявление пакета package является обязательным элементом каждого исходного файла в Go. Оно определяет, к какому пакету принадлежит файл, и должно быть первой строкой кода (за исключением комментариев). Пакеты служат для организации кода, управления видимостью и создания модульной структуры программы.

Каждый файл Go начинается с ключевого слова package, после которого указывается имя пакета. Например, package main объявляет исполняемый пакет, а package math — вспомогательный пакет для переиспользования. Имя пакета обычно соответствует имени директории, в которой он находится, но может отличаться для пакета main.

Синтаксис

package <имя_пакета>

Пример с пакетом main

Рассмотрим пример программы, использующей пакет main. Этот пакет необходим для создания исполняемого файла. Точкой входа в программу всегда является функция main внутри пакета main:

package main import "fmt" func main() { fmt.Println("Hello, World!") }

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

"Hello, World!"

Пример с пользовательским пакетом

Теперь создадим собственный пакет mathutil, который содержит функцию для сложения чисел. Файл должен лежать в директории с тем же именем (или в любой другой, если имя пакета задано явно). Пакеты, начинающиеся с заглавной буквы, экспортируются (видны за пределами пакета):

// Файл mathutil/mathutil.go package mathutil // Add складывает два целых числа. func Add(a int, b int) int { return a + b }

А в основном файле программы мы импортируем наш пакет и используем экспортированную функцию:

// Файл main.go package main import ( "fmt" "myproject/mathutil" ) func main() { res := mathutil.Add(10, 20) fmt.Println(res) }

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

30

Пример с пакетом и неэкспортируемой функцией

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

// Файл utils/utils.go package utils // multiplyByTwo — неэкспортируемая функция. func multiplyByTwo(x int) int { return x * 2 } // Double экспортирует умножение на 2. func Double(x int) int { return multiplyByTwo(x) }

Используем экспортированную функцию Double в основном пакете:

package main import ( "fmt" "myproject/utils" ) func main() { res := utils.Double(5) fmt.Println(res) }

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

10

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

  • инструкцию import,
    которая используется для подключения других пакетов
  • объявление func,
    которое определяет функции внутри пакета
  • ключевое слово var,
    для объявления переменных на уровне пакета
  • конструкцию type,
    позволяющую определять собственные типы в пакете
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить