Senior
Wat gebeurt er bij het schrijven naar een niet-geïnitialiseerde (nil) kanaal?
sobes.tech AI
Antwoord van AI
In Go leidt het schrijven naar een niet-geïnitialiseerde (nil) kanaal tot het voor altijd blokkeren van de goroutine, omdat een nil-kanaal niet klaar is om gegevens te ontvangen of te verzenden.
Voorbeeld:
var ch chan int // ch == nil
func main() {
ch <- 1 // wordt voor altijd geblokkeerd, omdat de kanaal nil is
}
Dit gedrag wordt soms gebruikt om kanalen dynamisch in of uit te schakelen in een select, omdat operaties met nil-kanalen nooit worden uitgevoerd en de goroutine blokkeren.