Sobes.tech
Middle

Kas yra uždarymas Go?

sobes.tech AI

Atsakymas iš AI

Uždarymas Go yra funkcija, kuri "atsimena" savo apylinkės reikšmes, net ir po to, kai išorinė funkcija baigiasi. Tai leidžia sugauti išorines kintamąsias ir naudoti jas viduje.

// Išorinė funkcija
func makeCounter() func() int {
    count := 0 // Sugautina kintamoji

    // Vidinė funkcija (uždarymas)
    return func() int {
        count++ // Sugauti ir pakeisti count
        return count
    }
}

// Pavyzdys naudoti
func main() {
    counter1 := makeCounter() // Sukuriame pirmą uždarymą
    fmt.Println(counter1()) // Išvestis: 1
    fmt.Println(counter1()) // Išvestis: 2

    counter2 := makeCounter() // Sukuriame antrą uždarymą (su savo count)
    fmt.Println(counter2()) // Išvestis: 1
}