Sobes.tech
Junior — Middle

Σε ποιες περιπτώσεις χρησιμοποιείται ο τελεστής defer στη γλώσσα προγραμματισμού;

sobes.tech AI

Απάντηση από AI

Ο τελεστής defer στη γλώσσα Swift χρησιμοποιείται για την καθυστερημένη εκτέλεση κώδικα: διασφαλίζει ότι ένα συγκεκριμένο μπλοκ κώδικα θα εκτελεστεί στο τέλος του τρέχοντος πεδίου ορατότητας, συνήθως κατά την έξοδο από μια λειτουργία ή μπλοκ.

Αυτό είναι χρήσιμο για την απελευθέρωση πόρων, το κλείσιμο αρχείων, την απελευθέρωση κλειδώσεων ή άλλες λειτουργίες καθαρισμού που πρέπει να συμβούν ανεξάρτητα από το πώς ολοκληρώνεται η λειτουργία (κανονικά ή με σφάλμα).

Παράδειγμα:

func readFile() {
    let file = openFile()
    defer {
        closeFile(file) // εγγυημένα θα εκτελεστεί κατά την έξοδο από τη λειτουργία
    }
    // εργασία με το αρχείο
}