Sobes.tech
Назад к вопросам
Junior — Middle
81

Разрешено ли отправлять данные в канал, который не открыт для чтения и записи?

Компании, где спрашивали
ГазпромГазпром
X5 groupX5 group

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

sobes.tech AI

В Go нельзя отправлять данные в канал, который не открыт для записи. Если канал закрыт (закрытие происходит с помощью close(channel)), попытка отправить в него вызовет панику (runtime panic).

Однако, чтение из закрытого канала возможно — при этом чтение вернёт нулевое значение типа канала и флаг, указывающий, что канал закрыт.

Пример:

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

// Чтение из закрытого канала безопасно
value, ok := <-ch // ok == false

// Отправка в закрытый канал вызовет панику
ch <- 1 // panic: send on closed channel

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