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