Как работают пакеты

«Как работают пакеты» — вопрос из категории Golang, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Пакеты в Go — это способ организации кода. Каждый пакет — это отдельная директория с .go файлами, объединёнными общей функциональностью.

  • Импорт: пакеты подключаются через import "путь/к/пакету".
  • Видимость: идентификаторы с заглавной буквы экспортируются (публичные), со строчной — приватные.
  • main: особый пакет, точка входа программы (функция main()).

Пример:

// math/math.go
package math

func Add(a, b int) int {  // Экспортируемая функция
    return a + b
}

func internalCalc() int {  // Приватная функция
    return 42
}
// main.go
package main

import (
    "fmt"
    "your/module/math"  // Импорт своего пакета
)

func main() {
    sum := math.Add(2, 3)  // Вызов экспортируемой функции
    fmt.Println(sum)       // 5
    // math.internalCalc()  // Ошибка: приватная функция!
}

Пакеты компилируются в статические библиотеки, что ускоряет сборку.