Junior — Middle
გთხოვთ ახსნათ დახურვის ფუნქციონირების მექანიზმი პროგრამირებაში.
sobes.tech AI
პასუხი AI-სგან
პროგრამირებაში, დახურვა (closure) არის ფუნქცია, რომელიც "მახსოვს" და შეუძლია გამოიყენოს მისი გარე სფეროს ცვლილებები, მიუხედავად იმისა, რომ ეს გარე ფუნქცია უკვე დასრულდა.
Go ენის ფარგლებში, დახურვები ხშირად შექმნილია ანონიმური ფუნქციების გამოყენებით, რომლებიც მიუთითებენ გარე კონტექსტის ცვლილებებზე. ეს საშუალებას აძლევს ფუნქციის გამოძახებისას მდგომარეობის შენარჩუნებას.
მაგალითი:
package main
import "fmt"
func გამრიცხველ() func() int {
count := 0
return func() int {
count++
return count
}
}
func main() {
c := გამრიცხველ()
fmt.Println(c()) // 1
fmt.Println(c()) // 2
fmt.Println(c()) // 3
}
აქ, გამრიცხველ ფუნქცია აბრუნებს დახურვას, რომელიც ზრდის და აბრუნებს count-ის მნიშვნელობას. ცვლილებადი count ინახება დახურვაში, გამოძახების შორის.