美文网首页
swift学习-Filter,Reduce

swift学习-Filter,Reduce

作者: 男人宫 | 来源:发表于2020-04-03 09:11 被阅读0次

filter

let nums = [1,2,3,4,5,6]
let result = nums.filter { $0 % 2 == 0 }
print("偶数为 \(result)")  //输出内容:偶数为[2,4,6]
//其中$0为依次从nums中取出的元素。{ $0 % 2 == 0 }为筛选闭包,忽略了参数名。也可以用如下完整闭包
 let result = nums.filter{ (index) -> Bool in
                        index % 2 == 0
                     }
  • filter:筛选的功能,接受一个用来筛选的闭包(条件闭包.用来返回一个true或者flase),返回一个数组,根据闭包函数返回的Bool值来过滤值。为true则加入到结果数组中

reduce

 let stringArray = ["Objective-C", "Swift", "HTML", "CSS", "JavaScript"]
        //第一个参数是初始值
        print(stringArray.reduce("aaa", {
            return $0 == "" ? $1 : $0 + "、" + $1
        }))
       aaa、Objective-C、Swift、HTML、CSS、JavaScript
  • reduce:接受一个一个原始值和一个闭包表达式.闭包返回值的类型要求要和初始值一样.遍历数组,闭包的返回值又作为参数在下一次循环中闭包参数使用.最终会返回一个最后累加得到的值

相关文章

网友评论

      本文标题:swift学习-Filter,Reduce

      本文链接:https://www.haomeiwen.com/subject/erucphtx.html