Назад к вопросам
Газпром
Junior — Middle
76
Можно ли отправлять данные в канал, имеющий значение nil?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В Go нельзя отправлять данные в канал, если он равен nil. Попытка отправить значение в nil-канал приведёт к блокировке горутины навсегда, так как такой канал не инициализирован и не может принять данные.
Пример:
var ch chan int // ch == nil
go func() {
ch <- 1 // блокируется навсегда
}()
// программа зависнет
Чтобы избежать блокировки, перед использованием канал нужно инициализировать:
ch := make(chan int)
ch <- 1 // работает корректно
Если канал может быть nil, перед отправкой стоит проверить его значение или использовать select с default, чтобы избежать блокировки.