对数组中的每个值执行函数筛选(filter),返回Bool值。在结果数组中,只会返回true值,而不会返回false值。下面我们从ints数组中筛选奇数:
let evenInts = ints.filter { return ($0 % 2 == 0) } print("evenInts: \(evenInts)") // prints: evenInts: [0, 2, 4, 6, 8]reduce比map和filter更复杂,不过因为非常有用,花时间学习也是有价值的。第一个参数就是第一个reduce值(在下面的案例中为0)。第二个参数是访问之前reduce值和数组现值的函数。在本例中,我们的函数是将之前的函数值简单加到数组的现值中。
let reducedInts = ints.reduce(0, combine: +) print("reducedInts: \(reducedInts)") // prints: reducedInts: 45 // defined another way: let reducedIntsAlt = ints.reduce(0) { (previousValue: Int, currentValue: Int) -> Int in return previousValue + currentValue } print("reducedIntsAlt: \(reducedIntsAlt)") // prints: reducedIntsAlt: 45通过map,filter,reduce方面的技巧,就能减少筛选时和处理集合时的工作量,并增加可读性,方便以后的人维护。
结论这份列表来自于我们团队的建议,收集了一些最常用的技巧,其中很多在整个代码库中都很常见。随着Swift这门编程语言的发展,像这样的技巧也在继续增加。我们希望能继续看到Swift的变化,并期待在应用中更多地使用这种语言。
Ubuntu 15.10安装部署Swift开发环境
Swift 正式开源,同时开源 Swfit 核心库和包管理器
Swift 的详细介绍:请点这里