🟡 Средний · 2 очк. Обработка ошибок
Что делает errors.Join(err1, err2) (Go 1.20+)?
A Оборачивает err1 в err2
B Создаёт ошибку, содержащую обе; errors.Is находит любую
C Возвращает первую не-nil ошибку
D Конкатенирует тексты ошибок
Объяснение вопроса

errors.Join(err1, err2, ...) объединяет несколько ошибок в одну. Результат содержит все переданные ошибки; errors.Is и errors.As проверяют каждую из них.

Пример

err1 := errors.New("first")
err2 := errors.New("second")
err := errors.Join(err1, err2)

errors.Is(err, err1)  // true
errors.Is(err, err2)  // true

Когда полезно

При параллельной работе (несколько горутин): собрать все ошибки и вернуть одну. Раньше делали вручную через слайс или канал; Join даёт единый error с сохранением цепочек.

🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.