You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift中能否实现变量的条件赋值?如何正确编写代码?

Swift中实现变量的条件赋值

你当前的写法错误在于,Swift的数组字面量内无法直接嵌入if-else语句块。针对你的需求,有几种简洁的实现方式:

1. 直接复用布尔值(最简方案)

因为active的取值完全等同于GlobalVariables.calculated的布尔状态,无需额外条件判断,直接传递该值即可:

struct Results: Identifiable {
    var id = UUID().uuidString
    var category: String
    var active: Bool
}

var results = [
    Results(category: "Results", active: GlobalVariables.calculated)
]

2. 使用三元运算符(适用于简单条件逻辑)

如果后续需要调整条件逻辑,可通过三元运算符在数组字面量内完成条件赋值:

var results = [
    Results(category: "Results", active: GlobalVariables.calculated ? true : false)
]

3. 先创建实例再组装数组(适用于复杂逻辑)

当条件逻辑更复杂时,先单独处理实例创建,再将其加入数组:

let resultItem: Results
if GlobalVariables.calculated {
    resultItem = Results(category: "Results", active: true)
} else {
    resultItem = Results(category: "Results", active: false)
}
var results = [resultItem]

4. 闭包初始化数组(适用于需要延迟计算的场景)

利用闭包在数组初始化时执行条件逻辑,适合需要延迟加载或复杂计算的情况:

var results: [Results] = {
    if GlobalVariables.calculated {
        return [Results(category: "Results", active: true)]
    } else {
        return [Results(category: "Results", active: false)]
    }
}()

内容的提问来源于stack exchange,提问作者Edward Hasted

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 02:37:11