Sobes.tech
Junior — Middle

Proqramlaşdırmada bağlamanın işləmə mexanizmini izah edin.

sobes.tech Süni İntellekt

AI-dan cavab

Proqramlaşdırmada, bağlama (closure) — bu, "xatırlayan" və xarici mühitdən dəyişənləri istifadə edə bilən funksiyadır, hətta bu xarici funksiya artıq icra olunmuş olsa belə.

Go dilində bağlamalar tez-tez anonim funksiyalar vasitəsilə yaradılır, onlar ətraf mühitdəki dəyişənlərə müraciət edir. Bu, funksiyanın çağırışları arasında vəziyyəti saxlamağa imkan verir.

Misal:

package main
import "fmt"

func sayğac() func() int {
    count := 0
    return func() int {
        count++
        return count
    }
}

func main() {
    c := sayğac()
    fmt.Println(c()) // 1
    fmt.Println(c()) // 2
    fmt.Println(c()) // 3
}

Burada, sayğac funksiyası count dəyərini artıran və geri qaytaran bağlama qaytarır. count dəyişəni çağırışlar arasında bağlamda saxlanılır.