Middle+
Hansı şərtlərdə kanalın oxunması həmişəlik bloklanacaq? Nil-kanala yazarkən nə baş verir? Bağlanmış kanala yazarkən nə baş verir?
sobes.tech Süni İntellekt
AI-dan cavab
-
Kanaldan oxuma, kanal boşsa və heç kim ona yazmağı planlaşdırmırsa, həmişəlik bloklanacaq (məsələn, bütün göndərənlər bağlanıb və ya yoxdur).
-
Nil-kanala yazma (nil ilə bərabər olan kanal) həmişəlik bloklanır, çünki nil-kanal başlanğıcda yaradılmayıb və məlumat qəbul edə bilməz.
-
Bağlanmış kanala yazmaq Go-da panikaya (panic) səbəb olur, çünki bu qadağandır və icra zamanı səhv hesab olunur.
Nümunə:
var ch chan int // nil-kanal
// <-ch // nil-kanaldan oxuma həmişəlik bloklanır
// ch <- 1 // nil-kanala yazma həmişəlik bloklanır
ch = make(chan int)
close(ch)
// ch <- 2 // panic: bağlanmış kanala göndərmə