Tag: 缩小

Swift中的高阶函数:Filter,Map,Reduce,flatmap,compactMap

据我了解,高阶函数是将另一个函数/闭包作为参数并返回它的函数。 我将首先尝试解释这一点。 考虑以下代码,这将使您了解什么是高阶函数: 将函数传递给另一个函数: 前两个方法的类型为(Double,Double)->Double 。 第一个接受两个double值并返回它们的和。 第二个返回这两个double值的乘积。 第三种方法是接受三个参数的高阶函数。 两个double值和一个类型为(Double,Double)->Double的函数。 看一下方法调用。 您将了解高阶函数的工作原理。 从另一个函数返回函数: 在这里,函数doArithmeticOperation(isMultiply:)是一个高阶函数,它返回类型为(Double,Double)->Double的函数。 函数和闭包是迅速的一等成员。 它们可以保存到变量中并传递。 因此,此处,基于传递给doArithmeticOperation(isMultiply:)函数的布尔值,它返回执行该操作的函数。 operationToPerform_1是为您执行乘法的函数。 operationToPerform_2是为您执行添加operationToPerform_2的函数。 只需看一下函数定义和调用即可。 您将了解所有内容。 当然,您可以通过许多不同的方式来做同样的事情。 可能是您可以使用闭包代替函数。 您可以创建一个算术运算枚举并简化该函数。 我只是想解释什么是高阶函数。 这是swift中使用的一些高阶函数。 如果我正确理解,以下函数将闭包用作参数。 您可以使用这些函数对Swift集合类型(例如Array, set或Dictionary 。 在进行以下操作之前,您应该了解什么是闭包。 阅读我关于闭包的文章 地图 使用 map 遍历一个集合,并对集合中的每个元素应用相同的操作。 map函数返回一个数组,其中包含对每个项目应用映射或转换函数的结果。 映射数组: 假设我们有一个整数数组: 让arrayOfInt = [2,3,4,5,4,7,2] 如果我们必须将每个数字乘以10怎么办? 我们通常使用for-in循环遍历每个数字,操作正确吗? var newArr:[Int] = [] 表示arrayOfInt中的值{newArr.append(value * 10)} print(newArr)//打印[20,30,40,50,40,70,20] 此代码看起来很冗长。 有一些样板代码,例如创建新的数组,可以使用map来避免。 如果我们尝试映射Int数组,则快速自动完成功能将显示以下内容。 […]