Swift 4.2 замыкания - PullRequest
       10

Swift 4.2 замыкания

0 голосов
/ 23 октября 2018

Привет, я учусь быстро. У меня есть упражнение по замыканиям, используемым для фильтрации коллекций.

У меня есть два простых замыкания, которые используются для фильтрации и сопоставления словаря

let myDict: [String: Int] = ["Dan":38, "Kira":2, "Olga":33, "Jess":10, "Bobo":4]

let filteredMyDict = myDict.filter {
    return $0.value < 5
}
print(filteredMyDict)

let filteredNames = filteredMyDict.map {
    return $0.key
}

print(filteredNames)

Этоможно связать фильтр и оператор отображения, если да, то как.

Это

1 Ответ

0 голосов
/ 23 октября 2018

Вы можете связать filter и map

let filteredNames = myDict.filter { $0.value < 5 }
    .map { $0.key }

или использовать compactMap, чтобы получить результат с одним обходом словаря:

Возвращает массив, содержащий ненулевые результаты вызова данного преобразования для каждого элемента этой последовательности.

В вашем случае:

let filteredNames = myDict.compactMap {
    $0.value < 5 ? $0.key : nil
}
...