Sobes.tech
Junior — Middle

Πότε καλείται ο τελεστής defer στη διαδικασία εκτέλεσης του κώδικα Go;

sobes.tech AI

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

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

Παράδειγμα:

func παράδειγμα() {
    defer fmt.Println("Αναβληθείσα κλήση")
    fmt.Println("Κύριος κώδικας")
}
// Η έξοδος θα είναι:
// Κύριος κώδικας
// Αναβληθείσα κλήση