Monthly Archives: August 2014

2.A.Управление ошибками в Swift: магия и могущество – Часть 2

Это перевод статьи ALEXANDROS SALAZAR  “Error handling in Swift: Might and Magic: Part II”. Перевод сопровождает код на Github, который подробно описывается в посте “Управление ошибками и Optionals в Swift – интерпретация в коде”.

В моем предыдущем посте ( оригинал на английском)  я показал, как метод  map для перечисления Result позволяет строить цепочки для серии трансформаций первоначальных данных в результат, не принимая во внимание, является ли результат “успехом” трансформаций или ошибкой до тех пор, пока этот результат будет необходим для финального отображения. Я указал в конце этого поста, что существует некоторая проблема с определенным типом методов. Вот это сейчас мы и рассмотрим.

.   .   .   .   .   .   .

Краткое резюме. Метод map позволяет создавать цепочки любых методов типа “один вход – один выход” для получения результата, подобного этому:

var finalResult = someResult.map(f1)
                            .map(f2)
                            .map(f3)

Выход такой, как мы и ожидали:

Continue reading

1.A.Управление ошибками в Swift: магия и могущество.

Это перевод статьи ALEXANDROS SALAZAR  “Error handling in Swift: Might and Magic”. Перевод сопровождает код на Github, который подробно описывается в посте “Управление ошибками и Optionals в Swift – интерпретация в коде”.

Расстояние дает перспективу, а близость – понимание. Концепции, которые были совершенно удаленными , когда я играл с ними в Haskell или читал о них в Scala теперь являются ослепительно ясными решениями для ряда задач при программировании в Swift.

Возьмем задачу обработки ошибок. В качестве конкретного примера рассмотрим деление двух чисел, которое заканчивается ошибкой если делитель – 0 . Вот как это выглядело бы на Objective-C:

Continue reading