Swift filter函数介绍

前端之家收集整理的这篇文章主要介绍了Swift filter函数介绍前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

filter用于选择数组元素中满足某种条件的元素。

比如一个金额数组,筛选出金额大于30元素

先看一下传统实现:

var filteredArray:[Int]=[]
for money in moneyArray{
if (money>30){
filteredArray+=[money]
}
}

我们惟一感兴趣的是money > 30,下面使用filter来定义同样的逻辑。

Swift中filter在Array类中的定义为:

filter(includeElement: (T) -> Bool) -> T[]

以返回true或false的函数includeElement作为参数,对原数组元素调用includeElement时,只有返回true的元素会通过筛选

对数组筛选,我们只需使用

filteredArray=moneyArray.filter({$0>30})
{$0 > 30}为筛选闭包,我们忽略了参数名而使用默认参数$0,返回类型隐式推断为Bool


了解了基本用法,下面我们用他来做一点有意思的事情:比如求个交并补集

let numberArray = [10,20,45,32,1,2,3,4,30,55]
let numberArray2 = [10,50]
print(numberArray.filter{numberArray2.contains($0)}) //交集
print(numberArray.filter{!numberArray2.contains($0)}) //补集
print(numberArray.filter{!numberArray2.contains($0)} + numberArray2) //并集

猜你在找的Swift相关文章