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
}