Возвращаемое значение функции, запущенной через go, не передаётся вызывающей горутине автоматически. Нужен канал, синхронизированное состояние или группа задач.
Почему resultErr не возвращается из горутины напрямую?
Возвращаемое значение функции, запущенной через go, не передаётся вызывающей горутине автоматически. Нужен канал, синхронизированное состояние или группа задач.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Возвращаемое значение функции, запущенной через go, не передаётся вызывающей горутине автоматически. Нужен канал, синхронизированное состояние или группа задач.
Родитель продолжает выполнение независимо и не получает обычного return дочерней функции. Ошибку можно отправить в канал и дождаться всех результатов. Другой вариант — записать первую ошибку под синхронизацией и прочитать после Wait. Простая запись resultErr из нескольких горутин создаёт гонку; отсутствие ожидания также не позволяет считать результат окончательным.