Sobes.tech
Middle

რა არის დახურვა Go-ში?

sobes.tech AI

პასუხი AI-სგან

Go-ში დახურვა არის ფუნქცია, რომელიც "მახსოვს" გარემოს მნიშვნელობებს, მიუხედავად იმისა, რომ გარეგანი ფუნქცია დასრულდა. ეს საშუალებას აძლევს გარე ცვლადების დაჭერას და გამოყენებას შიგნით.

// გარეგანი ფუნქცია
func makeCounter() func() int {
    count := 0 // ცვლადი, რომელიც დაიჭრება

    // შიდა ფუნქცია (დახურვა)
    return func() int {
        count++ // დავიჭიროთ და შევცვალოთ count
        return count
    }
}

// გამოყენების მაგალითი
func main() {
    counter1 := makeCounter() // პირველი დახურვის შექმნა
    fmt.Println(counter1()) // გამოყვანა: 1
    fmt.Println(counter1()) // გამოყვანა: 2

    counter2 := makeCounter() // მეორე დახურვის შექმნა (საკუთარი count-ით)
    fmt.Println(counter2()) // გამოყვანა: 1
}