Sobes.tech
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.