Swift -你可以创建条件变量吗?

zd287kbt  于 2023-05-05  发布在  Swift
关注(0)|答案(2)|浏览(155)

是否可以有条件地改变var的值?
我有一个菜单结构,需要根据是否发生了一些计算而以不同的方式显示,active = true/false。
下面是我想写的,但显然你不能在var语句中放置条件。我怎么能做到这一点?

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

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

utugiqy61#

对于这个简单的例子,你可以尝试使用一个三进制,像这样:

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

print("---> results: \(results) \n")
but5z9lq

but5z9lq2#

更好的选择是使用计算属性

var results : [Results] {
     return [Results(category: "Results", active: GlobalVariables.calculated)]
}

或者,如果results应该只初始化一次,则为lazy属性

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

附注:主要用于数组的类型应该以单数形式命名。

相关问题