Junior — Middle
Dasturlashda yopilishning ishlash mexanizmini tushuntiring.
sobes.tech AI
AIdan javob
Dasturlashda yopilish (closure) — bu funksiyadir, u "eslab qoladi" va tashqi muhitdagi o'zgaruvchilarni ishlata oladi, hatto bu tashqi funksiya allaqachon yakunlangan bo'lsa ham.
Go tilida yopilishlar ko'pincha nomlanmagan funksiyalar yordamida yaratiladi, ular atrofdagi kontekstdagi o'zgaruvchilarga murojaat qiladi. Bu funksiyalar chaqirilganda holatni saqlash imkonini beradi.
Misol:
package main
import "fmt"
func hisoblagich() func() int {
count := 0
return func() int {
count++
return count
}
}
func main() {
c := hisoblagich()
fmt.Println(c()) // 1
fmt.Println(c()) // 2
fmt.Println(c()) // 3
}
Bu yerda, hisoblagich funksiyasi count qiymatini oshiradigan va qaytaradigan yopilishni qaytaradi. count o'zgaruvchisi chaqirilishlar orasida yopilishda saqlanadi.