Sobes.tech
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.