Junior — Middle
Go tilida bo'sh (nil) kanalga yozish operatsiyasini bajirsangiz nima bo'ladi?
sobes.tech AI
AIdan javob
Go'da nil kanalga qiymat yozishga urinish, dastur doimiy ravishda bloklanadi (deadlock). Bu nil kanalni boshlang'ich holatda emasligi va qiymat qabul qilish yoki yuborish imkoniyatiga ega emasligi sababli yuzaga keladi.
Misol:
var ch chan int // ch == nil
func main() {
ch <- 1 // bu yerda dastur to'xtaydi
}
Buning oldini olish uchun, kanalni make yordamida boshlang'ich holatga keltirish kerak, masalan:
ch := make(chan int)
Faqat shundan so'ng, kanalga xavfsiz yozish va o'qish mumkin.