Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 二维阵列中的展平和展开选项_Swift_Optional_Flatmap - Fatal编程技术网

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()
替换。