Sobes.tech
Junior — Middle

Vysvetlite mechanizmus fungovania uzáverov v programovaní.

sobes.tech AI

Odpoveď od AI

V programovaní je uzáver (closure) funkcia, ktorá "pamätá" a môže používať premenné z jej vonkajšieho rozsahu, aj keď táto vonkajšia funkcia už ukončila vykonávanie.

V jazyku Go sú uzávery často vytvárané pomocou anonymných funkcií, ktoré pristupujú k premenným z okolia. To umožňuje zachovať stav medzi volaniami funkcie.

Príklad:

package main
import "fmt"

func čítač() func() int {
    count := 0
    return func() int {
        count++
        return count
    }
}

func main() {
    c := čítač()
    fmt.Println(c()) // 1
    fmt.Println(c()) // 2
    fmt.Println(c()) // 3
}

Tu funkcia čítač vracia uzáver, ktorý zvyšuje a vracia hodnotu count. Premenná count je udržiavaná v uzávere medzi volaniami.