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