map 和 flatmap 主要分在集合上的使用和在可选类型上的使用,下面分别来看下。
集合上使用 map 和 flatmap
先看如下的代码:
输入是一个一维数组,转换后 infos1 的结果是如下的一个二维数组,所以 map 后有两层结构:
输入是一个一维数组,转换后 infos2 的结果是如下的一个一维数组,所以 flatmap 后只有一层结构:
map 在 array 上的实现大致如下:
flatmap 在 array 上的实现大致如下:
可选类型上使用 map 和 flatmap
如下代码中,输入是 stringnumbers.first,其类型是 string?
- 转换后 x 的类型是 int??,所以 map 后有两层 optional
- 转换后 y 的类型是 int?,所以 flatmap 后只有一层 optional
map 在 optional 上的实现大致如下:
flatmap 在 optional 上的实现大致如下:
以上就是swift 进阶 - 详解map 和 flatmap的详细内容,更多关于swift map 和 flatmap的资料请关注其它相关文章!