Senior
Ce se întâmplă la citirea și scrierea într-un canal închis?
sobes.tech AI
Răspuns de la AI
În Go, atunci când lucrați cu canale:
-
Citirea dintr-un canal închis: Dacă canalul este închis și nu are date, operația de citire returnează valoarea zero a tipului canalului și
falseîn al doilea rezultat (dacă este utilizat), ceea ce indică faptul că canalul este închis. -
Scrierea într-un canal închis: Încercarea de a scrie într-un canal închis duce la o panică (
panic). Acesta este o eroare la timpul de execuție.
Exemplu:
ch := make(chan int)
close(ch)
// Citire
v, ok := <-ch // ok == false, v == 0
// Scriere
ch <- 1 // panic: send on closed channel
Prin urmare, un canal închis poate fi citit în siguranță atâta timp cât are date, dar nu se poate scrie în el.