Sobes.tech
Junior

Ποιος είναι ο ρόλος της κατασκευής defer στη γλώσσα Go;

sobes.tech AI

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

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

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

Παράδειγμα:

func readFile() error {
    file, err := os.Open("file.txt")
    if err != nil {
        return err
    }
    defer file.Close() // το αρχείο θα κλείσει κατά την έξοδο από τη συνάρτηση

    // εργασία με το αρχείο
    return nil
}

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