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