Swift flatMap详解
Swift flatMap详解
先看下flatMap的用法
Sequence.flatMap<S>(_: (Element) -> S)
-> [S.Element] where S : Sequence
Optional.flatMap<U>(_: (Wrapped) -> U?) -> U?
Sequence.flatMap<U>(_: (Element) -> U?) -> [U]
Map 可以对一个集合类型的所有元素做一个映射操作, 那么 flatMap 跟Map有什么区别呢?
让我们来看一个 flatMap 的用法:
result = numbers.flatMap {
$0 + 1 }
// [2,3,4,5]
同样的数组使用 flatMap 进行处理,得到的结果是一样的,那 flatMap 和 map 到底有什么区别呢?
让我们再看一个场景
let numbersCompound = [[1,2,3],[4,5,6

Swift的flatMap与Map的区别在于它会对结果进行“降维”操作。flatMap在处理二维数组时,会将内部数组展开成一维。此外,flatMap的一个重载能处理Optional值,过滤掉nil,改变数组结构。这使得flatMap在数据验证和过滤场景中十分有用。
最低0.47元/天 解锁文章
5519

被折叠的 条评论
为什么被折叠?



