美文网首页
Map Filter Reduce

Map Filter Reduce

作者: 胖红Red | 来源:发表于2017-08-23 17:51 被阅读13次

1 map函数

并不是swift标准库中为一个使用泛型的函数。

接受其他函数作为参数的函数有时被称为高阶函数

map 的泛型版本定义为Array的扩展。

处理确定类型的函数定义为该类型的扩展。

优点:自动补全更完善 暧昧的命名更少 以及(通常)代码结构更清晰。

2 Filter 通用型函数

filter 函数接受一个函数作为参数;filter 函数的类型是Element-Bool --对于数组中的所有元素,此函数都会判定他是否应该被包含在结果中:

像map 一样,Swift标准库中的数据类型已经有定义好的filter函数。

3.Reduce

例如计算数据的和;

将变量a初始化为某个值,然后对输入数组的每一项进行遍历,最后以某种方式更新结果。为了定义一个可以体现所需类型的泛型函数,我们需要对两份信息进行抽象:赋给result变量的初始值,和用于在每一次循环中更新结果的函数。Reduce函数就匹配这种模式。

Reduce函数在Swift标准库助也已经提供了。

我们可以使用Reduce来表示所有的函数。这个事实说明了reduce能够通过通用的方法来体现一个相当常见的编程模式:遍历数组并计算结果。

tip:通过reduce 来定义一切似乎不是什么好主意。因不出意外的话你的代码最终火灾运行期间大量复制生成的数组,换句话说,它不得不反复分配内存,释放内存。

4.泛型和any 类型

any 类型 能代表任何类型的值。

any 类型和泛型都能用于定义接受两个不同类型参数的函数。

泛型可以用于定义灵活的函数,类型检查仍然由编译器负责;

而any类型则可以避开swift的类型系统(所以应该尽可能避免使用

相关文章

网友评论

      本文标题:Map Filter Reduce

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