Sobes.tech
Junior — Middle

Ποια συμπεριφορά αναμένεται όταν καλείται ένας κενός χειριστής select στη γλώσσα Go;

sobes.tech AI

Απάντηση από AI

Στη γλώσσα Go, ο τελεστής select χρησιμοποιείται για την εργασία με πολλαπλά κανάλια ταυτόχρονα. Αν καλέσετε ένα κενό select (δηλαδή χωρίς κανένα case), η εκτέλεση θα μπλοκαριστεί επ' αόριστον, καθώς δεν υπάρχει κανένα κανάλι για ανάγνωση ή εγγραφή, και δεν υπάρχει default-case.

Παράδειγμα:

select {
    // κενό select
}

Αυτός ο κώδικας θα προκαλέσει το μπλοκάρισμα της goroutine, καθώς το select περιμένει τουλάχιστον ένα διαθέσιμο κανάλι ή ένα default για να συνεχίσει.