Swift —地图和flatMap

关于map&flatMap把网路上的一些资源做重点整理

参考:

斯威夫特烧脑体操:http://www.infoq.com/cn/articles/swift-brain-gym-map-and-flatmap

应用范例:http://blog.xebia.com/the-power-of-map-and-flatmap-of-swift-optionals/

Monad&Functor图解:http://www.ruanyifeng.com/blog/2015/07/monad.html

Array有一种map函数,两个flatMap函数:

当map的闭包返回值,不是序列类型时,和flatMap的差异就只是在于是否判断结果为nil。

可选有一种地图函数,一种平面地图函数:

两者本质上一样,提供调用者闭包函数,可返回Optionalvalue,也可以是非Optionalvalue。

Array和Optional的map函数都叫一样的名字,是因为他们都是Functor

Array和Optional的flatMap函数都叫一样的名字,是因为他们都是Monad