Sobes.tech
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.