似乎在Swift 4.1 flatMap中已弃用.然而,Swift 4.1中 有一个新方法,compactMap它做同样的事情?有了flatMap你可以集合中变换的每个对象,然后删除在无任何项目.
像flatMap一样
let array = ["1", "2", nil]
array.flatMap { $0 } // will return "1", "2"
Run Code Online (Sandbox Code Playgroud)
就像compactMap一样
let array = ["1", "2", nil]
array.compactMap { $0 } // will return "1", "2"
Run Code Online (Sandbox Code Playgroud)
compactMap 正在做同样的事情.
这两种方法有什么区别?为什么Apple决定重命名该方法?
这里有类似的问题,但它们附加到特定的编程语言,我正在寻找概念层面的答案.
据我所知,Functors本质上是不可变的容器,它暴露了map() API,派生出另一个仿函数.哪个添加可以将特定的仿函数称为monad?
据我所知,每个monad都是一个仿函数,但不是每个仿函数都是monad.