Junior
Kādas operācijas var veikt ar kanāliem Go?
sobes.tech AI
Atbilde no AI
- Sūtīšana (
<-chan) - Saņemšana (
chan<-) - Aizvēršana (
close) - Aizvēršanas pārbaude (otrais atgrieztā vērtība saņemšanas laikā)
- Izmantošana
select - Bufera lieluma noteikšana (
capizmantojot) - Pašreizējo elementu skaita noteikšana (
lenizmantojot)
Piemērs:
// Izveidot buferētu kanālu
ch := make(chan int, 5)
// Nosūtīt vērtību
ch <- 10
// Saņemt vērtību
val := <-ch
// Pārbaudīt, vai kanāls ir aizvērts, saņemot
val, ok := <-ch
// Aizvērt kanālu
close(ch)
// Izmantošana `select`
select {
case msg1 := <-ch1:
// apstrādāt ch1 ziņojumus
case msg2 := <-ch2:
// apstrādāt ch2 ziņojumus
default:
// nav pieejamu ziņojumu
}
// Noteikt bufera lielumu
bufferSize := cap(ch)
// Noteikt pašreizējo elementu skaitu
currentElements := len(ch)