Sobes.tech
Middle

Go'da yopilish nima?

sobes.tech AI

AIdan javob

Go'da yopilish, uning atrof-muhitdagi qiymatlarni "eslab qoladigan" va tashqi funktsiya tugagandan keyin ham ularni saqlaydigan funktsiya. Bu tashqi o'zgaruvchilarni ushlash va ichida ishlatish imkonini beradi.

// Tashqi funktsiya
func makeCounter() func() int {
    count := 0 // Ushtirish uchun o'zgaruvchi

    // Ichki funktsiya (yopilish)
    return func() int {
        count++ // countni ushlab, o'zgartiramiz
        return count
    }
}

// Foydalanish misoli
func main() {
    counter1 := makeCounter() // Birinchi yopilishni yaratamiz
    fmt.Println(counter1()) // Chiqarish: 1
    fmt.Println(counter1()) // Chiqarish: 2

    counter2 := makeCounter() // Ikkinchi yopilishni yaratamiz (o'z count bilan)
    fmt.Println(counter2()) // Chiqarish: 1
}