Junior
Koje operacije se mogu izvršiti sa kanalima u Go?
sobes.tech АИ
Одговор од АИ
- Slanje (
<-chan) - Prijem (
chan<-) - Zatvaranje (
close) - Provera zatvaranja (druga vrednost pri prijemu)
- Korišćenje u
select - Definisanje bafera (pomoću
cap) - Određivanje trenutnog broja elemenata (pomoću
len)
Primer:
// Kreiranje baferovanog kanala
ch := make(chan int, 5)
// Slanje vrednosti
ch <- 10
// Prijem vrednosti
val := <-ch
// Provera da li je kanal zatvoren pri prijemu
val, ok := <-ch
// Zatvaranje kanala
close(ch)
// Korišćenje u select
select {
case msg1 := <-ch1:
// obrada poruka iz ch1
case msg2 := <-ch2:
// obrada poruka iz ch2
default:
// nema dostupnih poruka
}
// Određivanje veličine bafera
bufferSize := cap(ch)
// Određivanje trenutnog broja elemenata
currentElements := len(ch)