Sobes.tech
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.