Zrocky

Stay Hungry, Stay Foolish

Think Different


欢迎与我交流

map与flatMap和compactMap的区别

Swift在4.1版本之前只有mapflatMap函数,之后引入了compactMap函数,但是compactMap函数并不是实现新的功能,而是用来解决flatMap函数功能不唯一的问题。原先flatMap函数既有去除nil的功能,也能将多维数组降维成一维,这违背了函数设计的单一职责原则,所以 Swift 4.1以后,使用flatMap函数只解决降维问题,去除nil的功能由新引入的compactMap函数完成。

map函数

逐个处理数组中的元素,并生成新数组

complactMap函数

map函数一致,只是当结果返回nil时,新数组会去除这一项

image-20200423120104137

flatMap函数

map函数一致,但当原数组是多维数组时,新数组只会返回一维数组

image-20200423120137384

最近的文章

SRS使用

>>> Install dockerDownload docker from here then start docker.>>> Clone SRSgit clone https://gitee.com/winlinvip/srs.oschina.git srs &&cd srs && git remote set-url origin https://github.com/ossrs/srs.git &&...…

docker framework继续阅读
更早的文章

iOS项目使用Universal Links

使用Universal Links来取代Scheme的跳转App功能,有更好的安全性(第三方不能使用这种方法跳转你的App),且不会弹出跳转确认框。可以查看官方文档 获取更详细的介绍。要使用Universal Links,首先需要一个网站,该网站必须使用https协议(存疑,我使用http跳转也能成功),然后按以下步骤操作: 创建一个无后缀文件,文件名为apple-app-site-association,写入以下信息: { "applinks": { ...…

应用间跳转继续阅读