Sobes.tech
Back to questions
Junior — Middle
96

Что произойдет, если попытаться закрыть канал, который уже закрыт?

Companies where asked
AvitoAvito

Answer from AI

sobes.tech AI

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

Пример:

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

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