Result<Success, Failure: Error> — enum .success / .failure для явной модели успеха/ошибки без исключений в сигнатуре колбэка.
Разбор
- Методы
map/flatMap/get().
- Удобен в completion handlers до async/await.
Failure должен быть Error.
- С async/await чаще
throws, но Result остаётся полезен для хранения.
Пример
let r: Result<Int, Error> = .success(1)
Итог
Result делает ошибку частью значения, а не скрытого side-channel.