Junior
Quali operazioni è possibile eseguire con i canali in Go?
sobes.tech AI
Risposta dell'AI
- Invio (
<-chan) - Ricezione (
chan<-) - Chiusura (
close) - Verifica della chiusura (secondo valore restituito durante la ricezione)
- Uso in
select - Definizione della capacità (usando
cap) - Definizione del numero corrente di elementi (usando
len)
Esempio:
// Creazione di un canale con buffer
ch := make(chan int, 5)
// Invio di un valore
ch <- 10
// Ricezione di un valore
val := <-ch
// Verifica se il canale è chiuso al ricevimento
val, ok := <-ch
// Chiusura del canale
close(ch)
// Uso in select
select {
case msg1 := <-ch1:
// elaborazione messaggi da ch1
case msg2 := <-ch2:
// elaborazione messaggi da ch2
default:
// nessun messaggio disponibile
}
// Definizione della capacità
bufferSize := cap(ch)
// Definizione del numero corrente di elementi
currentElements := len(ch)