select pozwala goroutine'owi czekać na wiele operacji kanałowych jednocześnie, kontynuując pracę od razu, gdy którzykolwiek będzie gotowy. To jak switch, ale dla kanałów — niezbędne do koordynacji operacji asynchronicznych, limitów czasowych i anulowania.
Podstawowy select — czekanie na wiele kanałów
{
msg1 := <-ch1:
fmt.Println(, msg1)
msg2 := <-ch2:
fmt.Println(, msg2)
ch3 <- :
fmt.Println()
}
