Junior
Aké operácie je možné vykonávať s kanálmi v Go?
sobes.tech AI
Odpoveď od AI
- Odoslanie (
<-chan) - Prijímanie (
chan<-) - Zatvorenie (
close) - Kontrola zatvorenia (druhá hodnota pri prijímaní)
- Použitie v
select - Definovanie bufferu (pomocou
cap) - Určenie aktuálneho počtu prvkov (pomocou
len)
Príklad:
// Vytvorenie bufferovaného kanála
ch := make(chan int, 5)
// Odoslanie hodnoty
ch <- 10
// Prijatie hodnoty
val := <-ch
// Kontrola, či je kanál zatvorený pri prijímaní
val, ok := <-ch
// Zatvorenie kanála
close(ch)
// Použitie v select
select {
case msg1 := <-ch1:
// spracovanie správ z ch1
case msg2 := <-ch2:
// spracovanie správ z ch2
default:
// žiadne dostupné správy
}
// Určenie veľkosti bufferu
bufferSize := cap(ch)
// Určenie aktuálneho počtu prvkov
currentElements := len(ch)