Middle
Τι είναι ο τελεστής defer στη γλώσσα Go;
sobes.tech AI
Απάντηση από AI
Ο τελεστής defer χρησιμοποιείται για την καθυστερημένη εκτέλεση λειτουργιών ή μεθόδων. Οι λειτουργίες που σημειώνονται με defer εκτελούνται ακριβώς πριν από την έξοδο από τη λειτουργία που τις περιέχει.
Αρχές λειτουργίας του defer:
- Εκτελείται κατά την έξοδο από την τρέχουσα λειτουργία, είτε αυτή εκτελείται κανονικά είτε λόγω πανικού.
- Πολλαπλά
deferσε μια λειτουργία εκτελούνται με σειρά LIFO (Last-In, First-Out). - Είναι χρήσιμο για τον καθαρισμό πόρων, όπως το κλείσιμο αρχείων ή δικτυακών συνδέσεων.
Παράδειγμα χρήσης:
package main
import (
"fmt"
"os"
)
func main() {
fmt.Println("Άνοιγμα αρχείου.")
file, err := os.Open("example.txt")
if err != nil {
// Διαχείριση σφάλματος
return
}
// Αναβολή κλεισίματος αρχείου
defer file.Close()
defer fmt.Println("Το αρχείο θα κλείσει.") // Αυτό το defer θα εκτελεστεί πρώτο (LIFO)
fmt.Println("Επεξεργασία αρχείου...")
// Επιπλέον εργασία με το αρχείο
}
Έξοδος προγράμματος:
Άνοιγμα αρχείου.
Επεξεργασία αρχείου...
Το αρχείο θα κλείσει.