Back to questions
Avito
Junior — Middle
96
Что произойдет, если попытаться закрыть канал, который уже закрыт?
Companies where asked
Answer from AI
sobes.tech AI
В Go попытка закрыть уже закрытый канал приведёт к панике (panic) во время выполнения программы. Это связано с тем, что функция close() предназначена для однократного закрытия канала, и повторное закрытие считается ошибкой.
Пример:
ch := make(chan int)
close(ch) // корректное закрытие
close(ch) // вызовет panic: close of closed channel
Чтобы избежать паники, нужно гарантировать, что канал закрывается только один раз, например, с помощью дополнительной логики или синхронизации.