Sobes.tech
Junior — Middle

Jakie zachowanie jest oczekiwane podczas wywoływania pustego operatora select w języku Go?

sobes.tech AI

Odpowiedź od AI

W języku Go operator select służy do obsługi wielu kanałów jednocześnie. Jeśli wywołasz pusty select (czyli bez żadnych case), wykonanie zostanie zablokowane na zawsze, ponieważ nie ma żadnego kanału do odczytu lub zapisu, i nie ma default-case.

Przykład:

select {
    // pusty select
}

Ten kod spowoduje zablokowanie goroutine, ponieważ select oczekuje co najmniej jednego dostępnego kanału lub default do kontynuacji.