Sobes.tech
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 θα περιμένει μέχρι ένα από τα κανάλια να είναι έτοιμο.