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.