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.