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