Sobes.tech
Junior — Middle

Nil değeri olan bir kanala veri gönderebilir misiniz?

sobes.tech yapay zeka

AI'dan gelen yanıt

Go dilinde, kanal nil ise, veri gönderilemez. nil kanalına değer göndermeye çalışmak, goroutine’nin sonsuza dek bloklanmasına neden olur çünkü böyle bir kanal başlatılmamış ve veri alamaz.

Örnek:

var ch chan int // ch == nil

go func() {
    ch <- 1 // sonsuza dek bloklanır
}()

// program takılır

Bloklamayı önlemek için, kanalı kullanmadan önce başlatmak gerekir:

ch := make(chan int)
ch <- 1 // düzgün çalışır

Kanal nil olabilirse, göndermeden önce değerini kontrol etmek veya bloklamayı önlemek için default ile select kullanmak gerekir.