Sobes.tech
Junior — Middle

Mi történik, ha megpróbál adatokat olvasni egy olyan csatornából, amelyet még nem inicializáltak?

sobes.tech MI

Válasz az MI-től

Ha megpróbálsz adatokat olvasni egy Go-ban lévő csatornából, amely nincs inicializálva (azaz nil), akkor az olvasási művelet örökre blokkolódik. Ez azt eredményezi, hogy az ilyen csatornából olvasó goroutine megakad, mivel a csatorna nem létezik, és nem tud adatokat továbbítani.

Példa:

var ch chan int // ch nil

func main() {
    fmt.Println(<-ch) // örökre blokkolódik
}

Ezt elkerülendő, a csatornát make segítségével kell inicializálni, például: ch := make(chan int).