Sobes.tech
Назад к вопросам
Senior
4

Что происходит при чтении и записи в закрытый канал?

Компании, где спрашивали
I-teco

Ответ от нейросети

sobes.tech AI

В Go при работе с каналами:

  • Чтение из закрытого канала: Если канал закрыт и в нём нет данных, операция чтения возвращает нулевое значение типа канала и false во втором возвращаемом значении (если используется), что сигнализирует о закрытии канала.

  • Запись в закрытый канал: Попытка записи в закрытый канал приводит к панике (panic). Это ошибка времени выполнения.

Пример:

ch := make(chan int)
close(ch)

// Чтение
v, ok := <-ch // ok == false, v == 0

// Запись
ch <- 1 // panic: send on closed channel

Таким образом, закрытый канал можно безопасно читать до тех пор, пока в нём есть данные, но нельзя писать.