Sobes.tech
Junior — Middle

Selgitage globaalse muutujaga seotud mõistet ja selle omadusi programmis.

sobes.tech AI

Vastus AI-lt

Go keeles globaalne muutuj on muutuv, mis on deklareeritud väljaspool funktsioone, tavaliselt paketis, ja on kättesaadav kogu paketis või isegi teistest paketidest, kui see on eksportitud (suure tähega).

Globaalsete muutujate omadused:

  • Nad initsialiseeruvad programmi käivitamisel, enne maini.
  • Neil on paketisisene ulatus, kui nende nimi algab väikese tähega, või neid eksporditakse, kui algab suure tähega.
  • Neid kasutatakse oleku salvestamiseks, mis on kättesaadav erinevatest funktsioonidest.
  • Need võivad põhjustada konkurentsi juurdepääsu probleeme mitme niidiga programmides, seetõttu nõuavad sageli sünkroniseerimist (näiteks mutexi abil).

Globaalsete muutujate näide:

package main

import "fmt"

var counter int = 0 // globaalne muutuj

func increment() {
    counter++
}

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

Globaalsete muutujate kasutamist tuleks minimeerida, et vältida hooldus- ja testimisraskusi.