> Когда завершится цикл for при чтении из канала в Go (Go)
Уровень: senior · Роль: backend · Язык: Go · Категория: Технические вопросы
Компании: Лига Цифровой Экономики
Стек: Go
> Пример ответа
Цикл for range по каналу завершится, когда канал будет закрыт, и все оставшиеся в нём значения будут прочитаны. Если канал не закрыть, цикл будет блокироваться в ожидании новых данных и никогда не завершится - это приведёт к утечке горутины.
Пример:
GOch := make(chan int)go func() {for i := 0; i < 3; i++ {ch <- i}close(ch) // без этого for никогда не завершится}()for v := range ch {fmt.Println(v)}
Важно: закрытие канала - ответственность отправителя. Чтение из закрытого канала возвращает нулевое значение, но for range автоматически выходит при закрытии.
> Похожие задачи по Go
Какие инструменты кроме трассировки используются для диагностики производительности
Как определить причину медленной работы REST API при ответе через 20 секунд
В каком формате передаются данные по сети
Можно ли ограничить capacity слайса в Go, чтобы append всегда создавал новый массив
> Похожие задачи по backend
Какие инструменты кроме трассировки используются для диагностики производительности
Как определить причину медленной работы REST API при ответе через 20 секунд
В каком формате передаются данные по сети
Можно ли ограничить capacity слайса в Go, чтобы append всегда создавал новый массив
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью