Junior — Middle
Okuma ve yazma için açık olmayan bir kanala veri göndermeye izin var mı?
sobes.tech yapay zeka
AI'dan gelen yanıt
Go dilinde, yazma izni olmayan bir kanala veri gönderilemez. Kanal kapatıldığında (close(channel) ile), ona veri göndermeye çalışmak bir panik (runtime panic) ile sonuçlanır.
Ancak, kapatılmış bir kanaldan okumak mümkündür: bu durumda, ok değeri false olan sıfır değeri döner ve kanalın kapatıldığını gösteren bir bayrak döner.
Örnek:
ch := make(chan int)
close(ch)
// Kapatılmış bir kanaldan okumak güvenlidir
value, ok := <-ch // ok == false
// Kapatılmış bir kanala veri göndermek panik oluşturur
ch <- 1 // panic: send on closed channel
Bu nedenle, yalnızca açık kanallara veri gönderilebilir.