Junior — Middle
Je možné získať prístup k premennej deklarovanej vo vnútri funkcie zvonku jej rozsahu?
sobes.tech AI
Odpoveď od AI
V jazyku Go má premenná deklarovaná vnútri funkcie lokálny rozsah a nie je priamo dostupná mimo tejto funkcie.
Avšak, k hodnote premennej je možné pristupovať zvonku pomocou uzávierok (closures) alebo vrátením hodnoty z funkcie.
Príklad s uzávierkou:
func čítač() func() int {
count := 0
return func() int {
count++
return count
}
}
func main() {
c := čítač()
fmt.Println(c()) // 1
fmt.Println(c()) // 2
}
Tu je premenná count deklarovaná vo vnútri funkcie čítač, ale je prístupná cez vracanú funkciu.
Bez týchto metód nie je priame prístup k lokálnej premennej zvonku z funkcie možný.