Sobes.tech
Back to questions
Junior — Middle
86

Объясните понятие глобальной переменной и её особенности в программе.

Companies where asked
Flant

Answer from AI

sobes.tech AI

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

Особенности глобальных переменных:

  • Инициализируются при запуске программы до выполнения main.
  • Имеют область видимости пакета, если имя начинается с маленькой буквы, или экспортируются, если с большой.
  • Используются для хранения состояния, доступного из разных функций.
  • Могут создавать проблемы с конкурентным доступом в многопоточных программах, поэтому часто требуют синхронизации (например, с помощью mutex).

Пример глобальной переменной:

package main

import "fmt"

var counter int = 0 // глобальная переменная

func increment() {
    counter++
}

func main() {
    increment()
    fmt.Println(counter) // Выведет 1
}

Использование глобальных переменных следует минимизировать, чтобы избежать сложностей с поддержкой и тестированием кода.