Sobes.tech
Senior

Başlatılmamış (nil) bir kanala yazarken ne olur?

sobes.tech yapay zeka

AI'dan gelen yanıt

Go'da, başlatılmamış (nil) bir kanala yazmak, goroutine'yi sonsuza kadar engeller çünkü nil-kanal veri almak veya göndermek için hazır değildir.

Örnek:

var ch chan int // ch == nil

func main() {
    ch <- 1 // sonsuza kadar engellenir, çünkü kanal nil
}

Bu davranış bazen, select içinde kanalları dinamik olarak etkinleştirmek/devre dışı bırakmak için kullanılır, çünkü nil-kanal ile yapılan işlemler hiçbir zaman gerçekleşmez ve goroutine'yi engeller.