Junior
Jaké operace lze provádět s kanály v Go?
sobes.tech AI
Odpověď od AI
- Odeslání (
<-chan) - Přijetí (
chan<-) - Uzavření (
close) - Kontrola uzavření (druhá hodnota při přijímání)
- Použití v
select - Definice bufferu (pomocí
cap) - Určení aktuálního počtu prvků (pomocí
len)
Příklad:
// Vytvoření bufferovaného kanálu
ch := make(chan int, 5)
// Odeslání hodnoty
ch <- 10
// Přijetí hodnoty
val := <-ch
// Kontrola, zda je kanál uzavřen při přijímání
val, ok := <-ch
// Uzavření kanálu
close(ch)
// Použití v select
select {
case msg1 := <-ch1:
// zpracování zpráv z ch1
case msg2 := <-ch2:
// zpracování zpráv z ch2
default:
// žádné dostupné zprávy
}
// Určení velikosti bufferu
bufferSize := cap(ch)
// Určení aktuálního počtu prvků
currentElements := len(ch)