Sobes.tech
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 (cap izmantojot)
  • Pašreizējo elementu skaita noteikšana (len izmantojot)

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)