是否有一个Swift等同于Python中的'Filter'函数?

R21*_*R21 2 python unicode lambda swift swift-playground

在python中,使用'filter'函数从字符串/列表中删除不需要的项目非常简单,该函数可以与'lambda'函数一起使用.在python中,它很简单:

a = "hello 123 bye-bye !!£$%$%"
b = list(filter(lambda x: x.isalpha(), a))
c = "".join(b)
print(c) #Which would print "hellobyebye"
Run Code Online (Sandbox Code Playgroud)

有没有办法轻松地在swift中复制它,而不先转换为unicode,然后检查unicode值是否在一定范围内?还有,什么'lambda'喜欢快速的东西?

Big*_*her 5

是的,FilterSwift中有一个等效函数:

过滤

filter方法接受一个函数(includeElement),该函数给定数组中的元素,返回一个Bool,指示元素是否应包含在结果数组中.例如,从数字数组中删除所有奇数可以这样做:

let numbers = [ 10000, 10303, 30913, 50000, 100000, 101039, 1000000 ]
let evenNumbers = numbers.filter { $0 % 2 == 0 }
// [ 10000, 50000, 100000, 1000000 ]
Run Code Online (Sandbox Code Playgroud)

有关Swift中Map,Filter和Reduce的更多信息

  • 请参阅[关闭文档](https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Closures.html#//apple_ref/doc/uid/TP40014097-CH11-ID94 ),在标题为"速记参数名称"的部分下. (2认同)