Sobes.tech
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)