Junior — Middle
O'qish va yozish uchun ochilmagan kanalga ma'lumot yuborish mumkinmi?
sobes.tech AI
AIdan javob
Go tilida, yozish uchun ochilmagan kanalga ma'lumot yuborib bo'lmaydi. Kanal yopilgan bo'lsa (close(channel) yordamida), unga yuborishga urinish runtime panic bilan tugaydi.
Ammo, yopilgan kanaldan o'qish mumkin: bu holda, o'qish kanalning tipidagi nol qiymatini va kanal yopilganligini ko'rsatadigan flagni qaytaradi.
Misol:
ch := make(chan int)
close(ch)
// Yopilgan kanaldan o'qish xavfsiz
value, ok := <-ch // ok == false
// Yopilgan kanaldan yuborish panicga olib keladi
ch <- 1 // panic: send on closed channel
Shunday qilib, faqat ochiq kanallarga ma'lumot yuborish mumkin.