Назад к вопросам
Газпром
X5 group
Junior — Middle
81
Разрешено ли отправлять данные в канал, который не открыт для чтения и записи?
Компании, где спрашивали
Ответ от нейросети
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
Таким образом, отправлять данные можно только в открытые каналы.