我正在寻找一种优雅的方式来映射 Optional
到Array
.我的意思是:
- 如果
Optional
是.none
,返回一个空的Array<Wrapped>
- 如果
Optional
是.some
, 返回单个元素Array<Wrapped>
现在可以这样做了
let seq = value.map { [$0] } ?? []
不幸的是,当您想内联使用它时,这会变得非常难看和难以辨认。
是否有更好的方法来完成此操作,而无需编写 extension
?
最佳答案
如何将您的可选项放入一个数组中,然后 compactMap
该数组具有恒等函数?
[yourOptional].compactMap { $0 }
正如 Martin R 所建议的,您可以使用 CollectionOfOne
来保存一次性数组的创建,代价是多写几个字符:
CollectionOfOne(yourOptional).compactMap { $0 }
关于swift:将可选映射到数组的优雅方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61443814/