Sobes.tech
Junior — Middle

Εξηγήστε την έννοια του closure και πώς χρησιμοποιείται στον προγραμματισμό

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 από τη εξωτερική λειτουργία, επιτρέποντας τη διατήρηση της κατάστασης μεταξύ των κλήσεων.