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