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.