Sobes.tech
Junior — Middle

Come organizzare la lettura simultanea dei dati da più canali?

sobes.tech AI

Risposta dell'AI

Per leggere contemporaneamente da più canali in Go, si utilizza generalmente l'operatore select. Permette di attendere più canali contemporaneamente e di reagire al primo che diventa disponibile.

Esempio:

ch1 := make(chan int)
ch2 := make(chan int)

go func() { ch1 <- 1 }()
go func() { ch2 <- 2 }()

select {
case msg1 := <-ch1:
    fmt.Println("Ricevuto da ch1:", msg1)
case msg2 := <-ch2:
    fmt.Println("Ricevuto da ch2:", msg2)
}

In questo modo, select permette di gestire efficacemente i dati provenienti da più fonti senza blocco.