Junior
Welke bewerkingen kunnen worden uitgevoerd met kanalen in Go?
sobes.tech AI
Antwoord van AI
- Verzending (
<-chan) - Ontvangst (
chan<-) - Sluiten (
close) - Controle op sluiting (de tweede waarde bij ontvangst)
- Gebruik in
select - Bepalen van buffering (met
cap) - Bepalen van het huidige aantal elementen (met
len)
Voorbeeld:
// Creëren van een gebufferde kanaal
ch := make(chan int, 5)
// Verzenden van een waarde
ch <- 10
// Ontvangen van een waarde
val := <-ch
// Controle op sluiting bij ontvangst
val, ok := <-ch
// Kanaal sluiten
close(ch)
// Gebruik in select
select {
case msg1 := <-ch1:
// Verwerking van berichten uit ch1
case msg2 := <-ch2:
// Verwerking van berichten uit ch2
default:
// Geen beschikbare berichten
}
// Bepalen van buffer grootte
bufferSize := cap(ch)
// Bepalen van het huidige aantal elementen
currentElements := len(ch)