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.