Sobes.tech
Junior — Middle

Go dilində boş (nil) kanala yazma əməliyyatı həyata keçirilsə, nə baş verir?

sobes.tech Süni İntellekt

AI-dan cavab

Go-da nil kanala dəyər yazmağa çalışsanız, proqram həmişəlik bloklanacaq (deadlock). Bu, nil kanalın initialize olunmaması və dəyərləri qəbul edə bilməməsi və ya göndərə bilməməsi ilə əlaqədardır.

Misal:

var ch chan int // ch == nil

func main() {
    ch <- 1 // burada proqram donacaq
}

Bunun qarşısını almaq üçün, kanalı make ilə initialize etmək lazımdır, məsələn:

ch := make(chan int)

Yalnız bundan sonra, kanala təhlükəsiz şəkildə yazmaq və oxumaq mümkündür.