Sobes.tech
Junior

Go'да каналдар менен кандай операцияларды жүргүзсө болот?

sobes.tech AI

AIден жооп

  • Жөнөтүү (<-chan)
  • Алып берүү (chan<-)
  • Жабуу (close)
  • Жабылгандын текшерүүсү (экинчи кайтарылган мааниси алуу учурунда)
  • select ичинде колдонуу
  • Буштуулук өлчөмүн аныктоо (cap аркылуу)
  • Учурдагы элементтердин санын аныктоо (len аркылуу)

Мисал:

// Буштуулук менен канал түзүү
ch := make(chan int, 5)

// Маани жөнөтүү
ch <- 10

// Маани алуу
val := <-ch

// Алып жатканда жабылганын текшерүү
val, ok := <-ch

// Каналды жабуу
close(ch)

// `select` ичинде колдонуу
select {
case msg1 := <-ch1:
	// ch1ден билдирүүлөрдү иштетүү
case msg2 := <-ch2:
	// ch2ден билдирүүлөрдү иштетүү
default:
	// жеткиликтүү билдирүүлөр жок
}

// Буштуулук өлчөмүн аныктоо
bufferSize := cap(ch)

// Учурдагы элементтердин санын аныктоо
currentElements := len(ch)