swift - 用于将值设置为未包装值数组或空的语法糖
问题描述
我正在尝试这样做:
var arrayOfValues: [nonOptional]
if let unwrappedValue = optionalValue {
arrayOfValues = [unwrappedValue]
} else {
arrayOfValues = []
}
有一个单行吗?
arrayOfValues = [unwrappedValue?] ?? []
解决方案
你的代码还不错。在这里冗长并不可怕。
也就是说,这有点短和简单:
[optionalValue].compactMap { $0 }
创建一个包含可选值的数组。然后调用compactMap
which 返回一个项目数组,其中块结果为非零。
推荐阅读
- kotlin - Kotlin MPP - 无法解析 Stetho 拦截器
- shared-element-transition - 仅在 Android 10 上的 onPause 后 setEnterSharedElementCallback 不起作用
- android - 如何在 ListView android 中显示原生广告?
- ruby-on-rails - CanCanCan可以加载_和_授权_资源
- python - 带有 Radiobutton 的 Python tkinter 动态输入框
- python - 从文本字段小部件中获取所有值并将它们返回到按钮小部件
- apache-spark - SPARK java.lang.OutOfMemoryError:没有足够的内存来构建表并将表广播到所有工作节点
- nativescript - Radlist 查看可折叠项目动画
- android - AnySoftKeyboard:将语言包集成到 apk 中,无需使用插件
- perforce - 在命令行中创建时如何保存更改列表编号?