Junior
Τι κάνει η κατασκευή default στην εντολή select;
sobes.tech AI
Απάντηση από AI
Η κατασκευή default στην εντολή select εκτελεί ένα μπλοκ κώδικα αν κανένα από τα άλλα κανάλια που αναφέρονται στο select δεν είναι έτοιμο για ανάγνωση ή εγγραφή αυτήν τη στιγμή. Αυτό αποτρέπει το μπλοκάρισμα της goroutine.
Παράδειγμα:
// Παράδειγμα με default
select {
case msg1 := <-channel1:
fmt.Println("Λήφθηκε μήνυμα 1:", msg1)
case msg2 := <-channel2:
fmt.Println("Λήφθηκε μήνυμα 2:", msg2)
default:
fmt.Println("Τα κανάλια δεν είναι έτοιμα, εκτελέστηκε το default")
}
Η χρήση του default καθιστά την εντολή select μη μπλοκαριστική. Αν απουσιάζει το default, το select θα περιμένει μέχρι ένα από τα κανάλια να είναι έτοιμο.