swift - swift中的多个if let和OR条件
问题描述
我有三个可选值。这些值是从 JSON 中读取的。首先,我想用 if let 保护这些值,然后我想检查这些值本身。
我想检查其中一个值是否存在,然后做一些事情。
我知道一个语句中的多个 if let 是 && 条件。我怎么做 || 代码更少的条件?
JSON:
{value1="", value2="", value3="Some value"}
struct Profile: Decodable
let value1: String?
let value3: String?
let value3: String?
}
以下是伪代码:
if let value1 = profile.value1 || let value2 = profile.value2 || let value3 = profile.value3 {
// One of these value is present
if value1 != "null" {
// do something
} else if value2 != "null" {
// do something
} else if value3 != "null" {
// do something
} else {
// No value present
}
} else {
// None of these values is present
}
解决方案
if let 语句不能使用 OR 条件。或者,您可以尝试以下选项。
第一的,
if let _ = value1 {
//One is present
} else if let _ = value2 {
//One is present
} else if let _ = value3 {
//One is present
}
第二,
if let value = value1 ?? value2 ?? value3 {
print(value)
}
推荐阅读
- php - 使用多重身份验证在 Laravel 中进行身份验证
- java - 尝试打开文件选择器 Java 时出现问题
- awk - 如何从 AWK substr 除法中获得更多小数
- javascript - 使用 React js 以表单形式输入的 Console.log 数据
- sparql - 在 sparql 中使用 strafter 函数时,由于无效的行错误,它不会运行
- unity3d - 删除前一个对象后复制新对象
- java - 如何使用 MimeMessageHelper 发送带附件的电子邮件?
- sql-server - 如何在 SSIS 中创建 Row_Number?
- javascript - 使用 JS 在 ClickOn 后将图像放入 HTML div
- ios - 如何通过 XMPPFramework 设置 XMPPMessage 的延迟交付日期属性?