Junior — Middle
Hələ qurulmamış bir kanaldan məlumat oxumağa çalışsanız nə baş verər?
sobes.tech Süni İntellekt
AI-dan cavab
Go-da kanaldan məlumat oxumağa çalışsanız, hansı ki, hələ başlanmayıb (yəni, nil-dir), oxuma əməliyyatı həmişəlik bloklanacaq. Bu, bu kanaldan məlumat oxumağa çalışan gorutinanın dayanməsinə səbəb olacaq, çünki kanal mövcud deyil və məlumat ötürə bilməz.
Nümunə:
var ch chan int // ch nil-dir
func main() {
fmt.Println(<-ch) // həmişəlik bloklanır
}
Bunun qarşısını almaq üçün, kanalı make ilə başlatmaq lazımdır, məsələn: ch := make(chan int).