Sobes.tech
Junior

Go'da kanallar bilan qanday operatsiyalar bajarish mumkin?

sobes.tech AI

AIdan javob

  • Yuborish (<-chan)
  • Qabul qilish (chan<-)
  • Yopish (close)
  • Yopilish tekshiruvi (qabul qilishda ikkinchi qaytariladigan qiymat)
  • select da foydalanish
  • Buffer o'lchamini belgilash (cap yordamida)
  • Hozirgi elementlar sonini aniqlash (len yordamida)

Misol:

// Bufferli kanal yaratish
ch := make(chan int, 5)

// Qiymat yuborish
ch <- 10

// Qiymat qabul qilish
val := <-ch

// Qabul qilishda yopilganligini tekshirish
val, ok := <-ch

// Kanalni yopish
close(ch)

// select da foydalanish
select {
case msg1 := <-ch1:
	// ch1 dan xabarlarni ishlash
case msg2 := <-ch2:
	// ch2 dan xabarlarni ishlash
default:
	// mavjud xabarlar yo'q
}

// Buffer o'lchamini belgilash
bufferSize := cap(ch)

// Hozirgi elementlar sonini aniqlash
currentElements := len(ch)