Senior
Čo sa stane pri zápise do neinicializovaného (nil) kanála?
sobes.tech AI
Odpoveď od AI
V Go, zápis do neinicializovaného (nil) kanálu spôsobí, že goroutine bude navždy zablokovaná, pretože nil-kanál nie je pripravený prijímať ani odosielať dáta.
Príklad:
var ch chan int // ch == nil
func main() {
ch <- 1 // je navždy zablokované, pretože kanál je nil
}
Toto správanie sa niekedy používa na dynamické zapínanie/vypínanie kanálov v select, pretože operácie s nil-kanálom sa nikdy nevykonajú a blokujú goroutine.