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