Senior
Mi történik, amikor olvasunk és írunk egy zárt csatornába?
sobes.tech MI
Válasz az MI-től
Go-ban, csatornákkal való munka közben:
-
Zárt csatornából olvasás: Ha a csatorna zárt és nincs benne adat, az olvasási művelet a csatorna típusának nullértékét és
false-t ad vissza a második értékben (ha használják), ami a csatorna zártságát jelzi. -
Zárt csatornába írás: A zárt csatornába való írás katasztrófát (
panic) okoz. Ez futás közbeni hiba.
Példa:
ch := make(chan int)
close(ch)
// Olvasás
v, ok := <-ch // ok == false, v == 0
// Írás
ch <- 1 // panic: send on closed channel
Ezért, egy zárt csatornát biztonságosan lehet olvasni, amíg vannak benne adatok, de nem lehet írni bele.