Senior
Co se stane při zápisu do neinicializovaného (nil) kanálu?
sobes.tech AI
Odpověď od AI
V Go, zápis do neinicializovaného (nil) kanálu způsobí, že goroutine bude navždy zablokována, protože nil-kanál není připraven přijímat ani odesílat data.
Příklad:
var ch chan int // ch == nil
func main() {
ch <- 1 // je navždy zablokováno, protože kanál je nil
}
Toto chování se někdy používá k dynamickému zapínání/vypínání kanálů v select, protože operace s nil-kanálem se nikdy nevykonají a blokují goroutine.