Middle+
Hangi durumlarda kanal okuması sonsuza kadar engellenir? Nil kanala yazma sırasında ne olur? Kapanmış bir kanala yazma sırasında ne olur?
sobes.tech yapay zeka
AI'dan gelen yanıt
-
Kanaldan okuma, kanal boşsa ve kimse içine yazmayı planlamıyorsa (örneğin, tüm gönderenler kapatılmış veya yoksa) sonsuza kadar engellenir.
-
Nil-kanala yazma (nil ile eşit olan bir kanal) her zaman sonsuza kadar engellenir, çünkü nil-kanal başlatılmamıştır ve veri alamaz.
-
Kapalı bir kanala yazmak, Go'da bir panik (panic) ile sonuçlanır, çünkü bu yasaktır ve çalışma zamanı hatası olarak kabul edilir.
Örnek:
var ch chan int // nil-kanal
// <-ch // nil-kanaldan okuma sonsuza kadar engellenir
// ch <- 1 // nil-kanala yazma sonsuza kadar engellenir
ch = make(chan int)
close(ch)
// ch <- 2 // panic: kapalı kanala gönderim