Senior
Τι είναι το defer στο Go; Τι θα εμφανίσει ο κώδικας με δύο defer;
sobes.tech AI
Απάντηση από AI
Στη γλώσσα Go, η λέξη-κλειδί defer χρησιμοποιείται για την καθυστέρηση της κλήσης μιας συνάρτησης: θα εκτελεστεί μετά την ολοκλήρωση της περιβάλλουσας συνάρτησης, αλλά πριν από την επιστροφή της.
Αν υπάρχουν πολλές δηλώσεις defer σε μια συνάρτηση, εκτελούνται με την αντίστροφη σειρά από αυτήν που δηλώθηκαν (στοίβα κλήσεων).
Παράδειγμα:
package main
import "fmt"
func main() {
defer fmt.Println("Πρώτο defer")
defer fmt.Println("Δεύτερο defer")
fmt.Println("Κύριος κώδικας")
}
Η έξοδος θα είναι:
Κύριος κώδικας
Δεύτερο defer
Πρώτο defer
Δηλαδή, πρώτα εκτελείται ο κύριος κώδικας, και στη συνέχεια οι καθυστερημένες κλήσεις με την αντίστροφη σειρά.