Junior — Middle
Ποια συμπεριφορά αναμένεται όταν καλείται ένας κενός χειριστής select στη γλώσσα Go;
sobes.tech AI
Απάντηση από AI
Στη γλώσσα Go, ο τελεστής select χρησιμοποιείται για την εργασία με πολλαπλά κανάλια ταυτόχρονα. Αν καλέσετε ένα κενό select (δηλαδή χωρίς κανένα case), η εκτέλεση θα μπλοκαριστεί επ' αόριστον, καθώς δεν υπάρχει κανένα κανάλι για ανάγνωση ή εγγραφή, και δεν υπάρχει default-case.
Παράδειγμα:
select {
// κενό select
}
Αυτός ο κώδικας θα προκαλέσει το μπλοκάρισμα της goroutine, καθώς το select περιμένει τουλάχιστον ένα διαθέσιμο κανάλι ή ένα default για να συνεχίσει.