Junior — Middle
Co się stanie, jeśli spróbujesz zamknąć kanał, który jest już zamknięty?
sobes.tech AI
Odpowiedź od AI
W języku Go próba zamknięcia już zamkniętego kanału spowoduje panic podczas działania programu. Wynika to z faktu, że funkcja close() jest przeznaczona do zamknięcia kanału tylko raz, a wielokrotne zamykanie jest uważane za błąd.
Przykład:
ch := make(chan int)
close(ch) // poprawne zamknięcie
close(ch) // spowoduje panic: close of closed channel
Aby uniknąć panic, należy zapewnić, że kanał zostanie zamknięty tylko raz, na przykład za pomocą dodatkowej logiki lub synchronizacji.