flatMap用于数组数组;它将内部数组的内容提升为外部数组的内容。这就是全部。它不会神奇地递归。它适用于type数组[[Element]],其中Element是某种单一类型。
换句话说,的平面图[[1],[2]]为[1,2],因为那是一个数组数组;其类型为[[Int]]。
但[1,[2]]是不是数组的数组。它实际上不是一堆东西;在Swift世界中,数组的所有元素必须都属于同一类型,这毫无意义。因此,它仅仅是Any的数组(如您的代码所承认);Swift甚至看不到数组中的任何数组t1。因此flatMap不适用。
在理想情况下,您的代码甚至都不会编译,因为flatMap在Any数组上使用是非法的。不幸的是,存在(或曾经是)另一个 flatMap,并且编译器在放弃flatMap适用于的基础上[[Element]]求助于另一个 flatMap。它适用于任何数组,因此您的代码最终合法(但仍然无效)。请参见Flatten [Any] Array Swift。
| 归档时间: |
|
| 查看次数: |
488 次 |
| 最近记录: |