Junior — Middle
Ce comportament se așteaptă dacă încerci să închizi un canal care a fost deja închis anterior?
sobes.tech AI
Răspuns de la AI
În Go, încercarea de a închide un canal deja închis duce la panic.
Un canal poate fi închis o singură dată pentru a semnala că nu vor mai fi trimise valori.
Dacă apelăm close(ch) repetat pentru același canal, programul se va încheia brusc cu o eroare.
Exemplu:
ch := make(chan int)
close(ch) // corect
close(ch) // panic: close of closed channel
De aceea, este important să controlăm ca canalul să fie închis doar o dată.