Junior — Middle
Kodda qaysi joyda kanalni yopish kerak?
sobes.tech AI
AIdan javob
Go'da kanalni yaratgan joyda va endi ma'lumot yuborishni rejalashtirmagan joyda yopish kerak. Odatiy holda, bu yuboruvchi tomonidan amalga oshiriladi va qabul qiluvchilarga ma'lumotlar endi bo'lmasligini signal qilish uchun.
Muhim:
- Qabul qiluvchilar o'qishda kanal yopilganligini tekshirishlari mumkin.
- Kanal faqat yuboruvchi tomonidan yopilishi kerak, aks holda panika yuzaga kelishi mumkin.
Misol:
ch := make(chan int)
func() {
defer close(ch) // barcha ma'lumotlar yuborilgandan so'ng kanalni yopamiz
for i := 0; i < 5; i++ {
ch <- i
}
}()
for val := range ch {
fmt.Println(val) // kanal yopilguncha ma'lumotlarni olamiz
}