Sobes.tech
Back to questions
Senior
3

Для чего можно использовать глобальную переменную в Go?

Companies where asked
Flant

Answer from AI

sobes.tech AI

Глобальные переменные в Go используются для хранения состояния или данных, которые должны быть доступны во многих функциях или пакетах без необходимости передавать их явно через параметры. Это удобно для конфигурационных настроек, кэширования, счетчиков или общих ресурсов.

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

Пример использования глобальной переменной с mutex:

package main

import (
    "fmt"
    "sync"
)

var (
    counter int
    mu      sync.Mutex
)

func increment() {
    mu.Lock()
    defer mu.Unlock()
    counter++
}

func main() {
    increment()
    fmt.Println(counter) // 1
}

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