26.Swift学习之闭包在集合中的运用

闭包是Swift中一个重要的知识点,不仅在开发中能够帮助解决很多问题(如逆向传值),而且在许多官方系统库方法中都能看到它的身影,尤其是在集合中提供了很多函数来对元素进行访问及操作,这些函数大量使用了闭包。重点需要掌握的函数有: sort、forEach、filter、map、reduce。

准备一个数组

//准备一个数组
var array:[String] = ["Animal", "Baby", "Apple", "Google", "Aunt"];

1. sort排序

//这种默认是升序
array.sorted()
//如果要降序
array.sort { (str1, str2) -> Bool in
    return str1 > str2
}

2. forEach遍历

array.forEach( {str in   
    print(str)
    
});

3. filter筛选

array.filter { (str) -> Bool in 
     //筛选里面的闭包必须是返回Bool类型的闭包
     str.hasPrefix("A")  
    }.forEach({     
        a in print(a)      
})

4. map变换

//闭包返回一个变换后的元素,接着将所有这些变换后的元素组成一个新的数组
array.map({ (str) -> String in    
    "Hello " + str    
}).forEach({   
    str in print(str)
})

5. reduce合规

//map和filter方法都是通过一个已存在的数组,生成一个新的、经过修改的数组。然而有时候我们需要把所有元素的值合并成一个新的值
var sum:[Int] = [11, 22, 33, 44];
//reduce 函数第一个参数是返回值的初始化值
var total = sum.reduce(0) { (num1, num2) -> Int in
    return num1 + num2
}
print(total)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏JetpropelledSnake

Python入门之面向对象编程(一)面向对象概念及优点

本文分为如下几个部分 首先说明面向对象是什么,然后结合实际例子说明面向对象的如下几个优点 方便函数管理 数据封装 对象操作 最后总结一下面向对象的好处 概念...

3777
来自专栏木子昭的博客

正则 (入门篇)简单来说写好正则表达式的两个要点:写在最后

如果你对正则感兴趣,读完这篇文章,一定会有收获~_^ 简单来说 正则一般代指正则表达式 正则表达式是从"复杂数据"中抽取"有用数据"的公式 ---- 写好正则...

3068
来自专栏阿凯的Excel

Python读书笔记22(函数传递任意数量实参)

连小编都没想到一个小小的函数要分享这么多期~ 当然,主要原因是! 不好意思,放错图了是! 今天和大家分享函数的最后一个部分,虾米呢? 前期有分享过传递一个...

3707
来自专栏坚毅的PHP

python的数学函数(1)-python组合函数模块itertools

要解决的问题: 输出n个 ['A','T','C','G'] 所有的排列组合。 比如n=2 时,输出为 AA,AT,AC,AG,TA,TT,TC,TG,……...

3924
来自专栏xingoo, 一个梦想做发明家的程序员

Java程序员的日常——《编程思想》一切都是对象

今天终于看完了第一章,哈哈,万事开头难....刚开始被编程思想的第一章给蒙住了,讲一堆理论,没什么意思。从第二章开始,真正的开始讲解Java相关的内容,有了一...

19110
来自专栏程序猿DD

第五章 正则表达式的拆分【修订】

本篇文章本不该存在,因小编的失误出现了一些错误,应作者要求,修正昨天同名文章的两处错误。 第五章 正则表达式的拆分 对于一门语言的掌握程度怎么样,可以有两个角度...

1996
来自专栏云霄雨霁

排序----堆排序

1610
来自专栏恰童鞋骚年

剑指Offer面试题:16.合并两个排序的链表

PS:这也是一道出镜率极高的面试题,我相信很多童鞋都会很眼熟,就像于千万人之中遇见不期而遇的人,没有别的话可说,唯有轻轻地问一声:“哦,原来你也在这里? ”

581
来自专栏布尔

想起温习一下JS中的this apply call arguments

很多时候讲到语言入门,大家会认为就是要了解一下语言的语法、数据类型和常用函数。这一课对于所有的计算机专业的毕业生来说都可以自学,然而在最近的实践中(带了两个实习...

21710
来自专栏racaljk

[数据结构]对链表、栈、队列的总结

你应该发现了一些异常,为什么链表只有node的定义?再来细想一下这三种模型,我们会发现链表其实就是由节点组成的,而栈和队列我们把它视作一个容器,然后可以向里面放...

1373

扫码关注云+社区

领取腾讯云代金券