问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

swift常用高阶函数

发布网友 发布时间:2022-12-26 08:17

我来回答

1个回答

热心网友 时间:2023-10-15 04:55

来看一个例子,就能秒懂
在本例中,首先使用 map 转换数组中的名称
转换为小写字符串,然后计算它们的字符数。

相同点:
map 和 flatMap 都可以用在 Optionals 和 SequenceTypes 上(如:数组、字典等)。

不同点:
map 对这个序列的每个元素进行转换。
flatMap 会将转换( transform )函数的返回类型先拍扁,在组合成本身的复合类型

看一个例子

请注意上面使用 map 和 flatMap ,带有返回数组的转换的结果。实际上 s.flatMap(transform) 相当于 Array(s.map(transform). joined()) 。

Swift4.1 新加入的新特性 compactMap ;
对序列的每个元素进行转换,返回非nil结果

看一个例子
map 返回有可选值 nil
compactMap 返回的是剔除可选值的结果

当类型转换时有可能装换为可选类型的时候,用 compactMap ,不会装换为可选类型的咱们直接用 flatMap

比如我们有一个数组

我们想要返回每个元素的长度的时候,转换时返回类型是 Int? 时,这个时候不能确保转换成功,就需要用 compactMap

filter 过滤器,可以取出数组中符合条件的元素,重新组成一个新的数组

有的时候我们需要把所有元素的值合并成成一个新的值,就用到了 rece

来看下面这个例子

当调用 numbers.rece(_:_:) 时,执行以下步骤:
1。使用 initialResult —— 0 调用 nextPartialResult 闭包,在这种情况下——调用 numbers 的第一个元素,返回 sum:' 1 ' 。
2。使用前一个调用的返回重复调用闭包值和序列的每个元素。
3。当序列用完时,从闭包返回给调用者。
如果序列没有元素,则永远不会执行 nextPartialResult 和 initialResult 是调用 rece(_:_:) 的结果。

1. 合并成的新值不一定跟原数组中元素的类型相同

2. ruce 还可以实现 map 和 filter 并且时间复杂度变为 O(n) 原来 map 和 filter 的时间复杂度是 O(n*n)

我们看 SequenceTypes 上的方法和函数有这么多,学无止境,慢慢探索

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
鞋底是空心格子怎么办 鞋里有格子硌脚怎么办 买的鞋子里面是空心格子底硌脚怎么办 鞋子底是空心格子的怎样办 浅谈NY5196—2002有机茶 有机食品茶叶标准 茶叶的储藏运销:茶叶贮藏期的化学变化 东方美人茶要怎么储存?东方美人茶储存方法 乌龙茶贮运方法 有机乌龙茶是什么贮藏与运输的? swift 高级用法 我*舰退役后有转买给其他国家的,都有哪些军舰退役后卖给了那几个国家? 手机管家怎么关闭闪充 我刚收到的小米二 打开充电 显示屏一直显示百分之零 指示灯也不亮 为什么 充电机开关打开显示屏灯就灭 新建怎样获取二维码? 《转角遇到爱》这部电视剧里的所有歌曲有那些???~??~??~?~ 求转角遇到爱的原声带歌曲 转角遇到爱里的钢琴曲叫什么? 在《转角遇到爱》电视剧里有哪些歌曲?? 防错法在什么情况下即加以防止 防错的三个原则 700度保险网的介绍 黛富妮家纺是上市公司吗 金税盘插口掉里面了 必须用手机号申请吗 注册一定要用手机号吗 注册一定要用手机号吗 定语从句关系副词的用法 only + 副词 /介词短语/状语从句都可以表部分倒装,例子有哪些 swift怎么用? qq音乐宠物剪刀等级 qq音乐朋友可以看到关注列表 期货从业资格证考试考哪几门? 手机被远程控制如何解锁啊? 放疗期间吃什么 鼻癌放疗期间喝什么汤比较好 鼻癌患者在放疗期可以喝鸡汤 吗?如果喝鱼汤,什么鱼汤最好. 癌症病人放疗期间吃什么? 天津版三年袁大头的特征有哪些? 请问南京有什么好的理财规划师培训机构?费用是多少啊,时间要多长啊,本人今年大四了,还来得及吗?先谢 我妈要花几万块去学理财培训的,怎么办? 甜杏仁能祛斑吗 教你祛斑的做法 口袋妖怪始源蓝宝石花岩怪怎么出来 一造计价答案什么时候出啊 钓鱼小白求助:海竿的活坠和死坠分别是什么? 滴滴打车皮卡车可以吗 hp渡鸦第三十五章讲了什么 哈利波特与被诅咒的孩子(连载十九) 伊莲娜c罗前任是维密模特吗