Sobes.tech
Senior

Was passiert beim Schreiben in einen nicht initialisierten (nil) Kanal?

sobes.tech KI

Antwort von AI

In Go führt das Schreiben in einen nicht initialisierten (nil) Kanal dazu, dass die Goroutine dauerhaft blockiert wird, da ein nil-Kanal bereit ist, keine Daten zu empfangen oder zu senden.

Beispiel:

var ch chan int // ch == nil

func main() {
    ch <- 1 // blockiert dauerhaft, da der Kanal nil ist
}

Dieses Verhalten wird manchmal verwendet, um Kanäle dynamisch in select-Anweisungen zu aktivieren/deaktivieren, da Operationen mit nil-Kanälen niemals ausgeführt werden und die Goroutine blockieren.