Sobes.tech
Junior — Middle

Μπορείτε να εξηγήσετε την αρχή λειτουργίας και την εφαρμογή της κατασκευής defer στη γλώσσα Go;

sobes.tech AI

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

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

Παράδειγμα:

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

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

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