Swift 4.2闭包

时间:2018-10-23 08:30:48

标签: swift closures

嗨,我正在学习快速知识,我对用于过滤集合的闭包进行了练习

我有两个简单的闭包,用于过滤和映射字典

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)

是否可以链接filter和map语句,如果可以的话。

那个

1 个答案:

答案 0 :(得分:6)

您可以链接UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-3: ordinal not in range(128)filter

map

或使用{{3}}一次遍历 字典:

  

返回一个数组,其中包含对该序列的每个元素调用给定转换的非零结果。

在您的情况下:

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