Sobes.tech
Junior — Middle

Co se stane, když se pokusíte zavřít kanál, který je již zavřený?

sobes.tech AI

Odpověď od AI

В Go попытка закрыть уже закрытый канал приведёт к панике (panic) во время выполнения программы. Это связано с тем, что функция close() предназначена для однократного закрытия канала, и повторное закрытие считается ошибкой.

Пример:

ch := make(chan int)
close(ch)      // корректное закрытие
close(ch)      // вызовет panic: close of closed channel

Чтобы избежать паники, нужно гарантировать, что канал закрывается только один раз, например, с помощью дополнительной логики или синхронизации.