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).