Sobes.tech
Junior — Middle

Was passiert, wenn man versucht, Daten aus einem Kanal zu lesen, der noch nicht initialisiert wurde?

sobes.tech KI

Antwort von AI

Wenn man versucht, Daten aus einem in Go nicht initialisierten Kanal zu lesen (also nil ist), wird die Leseoperation für immer blockiert. Dies führt dazu, dass die Goroutine, die versucht, aus diesem Kanal zu lesen, hängen bleibt, da der Kanal nicht existiert und keine Daten übertragen kann.

Beispiel:

var ch chan int // ch ist nil

func main() {
    fmt.Println(<-ch) // bleibt für immer blockiert
}

Um dies zu vermeiden, muss der Kanal mit make initialisiert werden, zum Beispiel: ch := make(chan int).