首页 > 解决方案 > 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
}

标签: swift

解决方案


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)
}

推荐阅读