Middle+
Pod kojim uslovima će čitanje iz kanala biti zauvek blokirano? Šta će se desiti pri pisanju u nil-kanal? Pri pisanju u zatvoreni kanal?
sobes.tech АИ
Одговор од АИ
-
Čitanje iz kanala će biti blokirano zauvek ako je kanal prazan i niko ne planira da piše u njega (na primer, svi pošiljaoci su zatvoreni ili nedostupni).
-
Pisanje u nil-kanal (kanal jednak nil) uvek je blokirano zauvek, jer nil-kanal nije inicijalizovan i ne može primati podatke.
-
Pisanje u zatvoreni kanal izaziva paniku (panic) u Go, jer je to zabranjeno i smatra se greškom u izvršenju.
Primer:
var ch chan int // nil-kanal
// <-ch // čitanje iz nil-kanala je zauvek blokirano
// ch <- 1 // pisanje u nil-kanal je zauvek blokirano
ch = make(chan int)
close(ch)
// ch <- 2 // panic: slanje na zatvoreni kanal