Что такое multierror?

Middle
413 просмотров
AFK Offer AI

Multierror — паттерн агрегации нескольких ошибок в одну. В Go 1.20+ errors.Join(err1, err2, err3) объединяет ошибки, и errors.Is/As работает с каждой из них. До этого использовали библиотеки вроде hashicorp/go-multierror или uber-go/multierr. Типичный кейс: валидация нескольких полей — хочешь вернуть все ошибки разом, а не по одной. Или закрытие нескольких ресурсов в defer — хочешь собрать все ошибки закрытия. errors.Join(errs...) возвращает nil, если все ошибки nil.

Следующий вопрос

Задача: напишите функцию для реверса строки