Назад к вопросам
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("Эта строка не будет выполнена, если снять комментарий с предыдущей.")
}