Sobes.tech
Junior — Middle

Wyjaśnij pojęcie zmiennej globalnej i jej cechy w programie.

sobes.tech AI

Odpowiedź od AI

Zmienne globalne w Go to zmienne zadeklarowane poza funkcjami, zazwyczaj w pakiecie, i dostępne w całym pakiecie lub nawet z innych pakietów, jeśli są eksportowane (z wielką literą).

Cechy zmiennych globalnych:

  • Są inicjalizowane podczas uruchomienia programu, przed wykonaniem main.
  • Mają zakres pakietu, jeśli nazwa zaczyna się od małej litery, lub są eksportowane, jeśli zaczyna się od dużej.
  • Służą do przechowywania stanu dostępnego z różnych funkcji.
  • Mogą powodować problemy z dostępem współbieżnym w programach wielowątkowych, dlatego często wymagają synchronizacji (np. za pomocą mutexa).

Przykład zmiennej globalnej:

package main

import "fmt"

var counter int = 0 // zmienna globalna

func increment() {
    counter++
}

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

Należy minimalizować użycie zmiennych globalnych, aby uniknąć problemów z utrzymaniem i testowaniem kodu.