Swift 二维阵列中的展平和展开选项
下面的代码完成了这项工作Swift 二维阵列中的展平和展开选项,swift,optional,flatmap,Swift,Optional,Flatmap,下面的代码完成了这项工作 var array:[[Int?]] = [[1,2,3,nil],[1,2,3,nil]] var flattened = array.flatMap{$0}.flatMap{$0} // flattened is of type [Int] 但是两个flatMap一个接一个,如果找到,代码不容易阅读。你将如何以更简洁的方式写这篇文章 是map()和flant()的组合: s.flatMap(转换) 相当于 Array(s.map(transform).flat
var array:[[Int?]] = [[1,2,3,nil],[1,2,3,nil]]
var flattened = array.flatMap{$0}.flatMap{$0}
// flattened is of type [Int]
但是两个flatMap
一个接一个,如果找到,代码不容易阅读。你将如何以更简洁的方式写这篇文章
是map()
和flant()
的组合:
s.flatMap(转换)
相当于
Array(s.map(transform).flatte())
您正在将flatMap()
与“身份转换”{$0}
连接数组;这可以简化
通过直接使用flant()
:
let flattened = array.flatten().flatMap { $0 }
Try.map{$0}.flatMap{$0}这将返回一个选项数组。它不会变得更短或更容易理解,如果有人知道flatMap做什么,这是最好的解决方案-如果有人不知道,他应该仔细阅读,因为其他所有解决方案都会同样混乱。第一个flatMap可以用
flatte()
替换。