Junior
Ce operații se pot realiza cu canale în Go?
sobes.tech AI
Răspuns de la AI
- Trimitere (
<-chan) - Primire (
chan<-) - Închidere (
close) - Verificare dacă s-a închis (al doilea rezultat la primire)
- Utilizare în
select - Definirea bufferului (folosind
cap) - Determinarea numărului curent de elemente (folosind
len)
Exemplu:
// Crearea unui canal tamponat
ch := make(chan int, 5)
// Trimiterea unei valori
ch <- 10
// Primirea unei valori
val := <-ch
// Verificarea dacă canalul este închis la primire
val, ok := <-ch
// Închiderea canalului
close(ch)
// Utilizare în select
select {
case msg1 := <-ch1:
// procesare mesaje din ch1
case msg2 := <-ch2:
// procesare mesaje din ch2
default:
// nu există mesaje disponibile
}
// Definirea bufferului
bufferSize := cap(ch)
// Determinarea numărului curent de elemente
currentElements := len(ch)