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 。