Sobes.tech
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ý.