Da li je moguće unutar funkcije pristupiti promenljivoj koja je deklarisana kao javna i nalazi se u njenom opsegu unutar vitičastih zagrada?
sobes.tech АИ
Одговор од АИ
U Go, opseg promenljive je ograničen na blok u kojem je deklarisana. Ako je promenljiva deklarisana unutar zagrada funkcije (lokalna promenljiva), dostupna je samo unutar te funkcije i njenih ugnježdenih blokova. Vidljivost (eksportabilnost) promenljive u Go određuje veliko slovo na početku imena i odnosi se na vidljivost iz drugih paketa, a ne unutar funkcije.
Dakle, unutar funkcije možete pristupiti promenljivoj deklarisanoj u njenim zagradama ako je deklarisana u istoj funkciji ili u spoljnim oblastima vidljivosti. Ako je promenljiva deklarisana unutar funkcije, ona je lokalna i dostupna je samo unutar te funkcije. Ako je promenljiva deklarisana izvan funkcije i eksportovana (javno dostupna), možete joj pristupiti i unutar funkcije.
Primer:
package main
import "fmt"
var PublicVar = "dostupna svuda u paketu i iz drugih paketa"
func primer() {
localVar := "dostupna samo unutar primera"
fmt.Println(PublicVar) // pristup javnoj promenljivoj
fmt.Println(localVar) // pristup lokalnoj promenljivoj
}
func main() {
primer()
}
Ako je promenljiva deklarisana unutar funkcije, ona ne može biti dostupna van te funkcije, čak i ako je njeno ime "javno" (sa velikim slovom).