首页 > 解决方案 > 用于将值设置为未包装值数组或空的语法糖

问题描述

我正在尝试这样做:

var arrayOfValues: [nonOptional]

if let unwrappedValue = optionalValue {
  arrayOfValues = [unwrappedValue] 
} else {
  arrayOfValues = []
}

有一个单行吗?

arrayOfValues = [unwrappedValue?] ?? []

标签: swift

解决方案


你的代码还不错。在这里冗长并不可怕。

也就是说,这有点短和简单:

[optionalValue].compactMap { $0 }

创建一个包含可选值的数组。然后调用compactMapwhich 返回一个项目数组,其中块结果为非零。


推荐阅读