Назад к вопросам
Middle
220
questionbank
Что произойдет, если закрыть уже закрытый канал в Go?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Произойдет паника во время выполнения (panic).
Закрытие канала — это операция, которая должна выполняться только один раз. Повторное закрытие сигнализирует о потенциальной логической ошибке в программе, связанной с некорректным управлением состоянием канала.
package main
import (
"fmt"
)
func main() {
ch := make(chan int)
close(ch) // Первое закрытие - OK
fmt.Println("Канал закрыт успешно.")
// Попытка повторного закрытия вызовет панику
// close(ch)
// fmt.Println("Эта строка не будет выполнена, если снять комментарий с предыдущей.")
}