Junior — Middle
Εξηγήστε την έννοια του κλεισίματος στον προγραμματισμό και την εφαρμογή του
sobes.tech AI
Απάντηση από AI
Το κλείσιμο (closure) είναι μια συνάρτηση μαζί με το περιβάλλον λεξικού πλαισίου της, που διατηρεί την πρόσβαση σε μεταβλητές από το εξωτερικό πεδίο ακόμα και μετά την ολοκλήρωση της εξωτερικής συνάρτησης.
Εφαρμογές των κλεισιμάτων:
- Διατήρηση της κατάστασης μεταξύ κλήσεων της συνάρτησης χωρίς χρήση παγκόσμιων μεταβλητών.
- Ενθυλάκωση δεδομένων και δημιουργία ιδιωτικών μεταβλητών.
- Δημιουργία συναρτήσεων με προεπιλεγμένες παραμέτρους ή μερική σταθεροποίηση επιχειρημάτων.
Παράδειγμα σε Swift (iOS):
func makeIncrementer(amount: Int) -> () -> Int {
var total = 0
let incrementer: () -> Int = {
total += amount
return total
}
return incrementer
}
let incrementByTen = makeIncrementer(amount: 10)
print(incrementByTen()) // 10
print(incrementByTen()) // 20
Εδώ, το incrementer είναι ένα κλείσιμο που διατηρεί την πρόσβαση στο total και το amount από τη εξωτερική συνάρτηση makeIncrementer.