вторник, 11 августа 2015 г.

Trailing closure syntax in Swift

В Swift поддерживается удобная фича, видимо пришедшая из Perl : trailing closure syntax .
Допустим нам нужно отсортировать массив строк в лексикографическом порядке. Придумываем имена для двух переменных и сортируем:
searchResults.sort({ (result1: String, result2String) -> Bool in
    return result1.localizedStandardCompare(result2) == NSComparisonResult.OrderedAscending
})
Имена придуманных мною переменных я подсветил желтым. А вот более приятный глазу синтаксис:

searchResults.sort {   
    $0.name.localizedStandardCompare($1.name) == NSComparisonResult.OrderedAscending 
}
Вопрос читабельности остается открытом, на вкус и цвет как говорится...

Комментариев нет:

Отправить комментарий