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 διατηρείται στο κλείσιμο μεταξύ των κλήσεων.