![](/img/trans.png)
[英]How to make Boolean Value stay true after the first time it becomes true? (SWIFT)
[英]How to make a case return a different value if a variable is true in swift?
我想知道如果變量是真還是假,是否可以讓 case 語句返回不同的值。
var variable = false
enum enumeraton {
case thing
var value: Int {
switch self {
case .thing:
if variable = true {
return 1
}else {
return 2
}
}
}
}
有沒有辦法做到這一點?
根據您要如何處理variable
,有不同的解決方案。 如果您想在創建枚舉變量/屬性時讀取variable
的值,您可以使用枚舉的關聯值
var variable = false
enum Enumeraton {
case thing(Bool)
var value: Int {
switch self {
case .thing(let flag):
return flag ? 1 : 2
}
}
}
let enumValue: Enumeraton = .thing(variable)
print(enumValue.value)
但是,如果您想隨着時間的推移讀取variable
,那么將 boolean 作為參數的 function 會更好
enum Enumeraton {
case thing
func value(for flag: Bool) -> Int {
guard self == .thing else { return 0 } // or some other action
return flag ? 1 : 2
}
}
let enumValue: Enumeraton = .thing
print(enumValue.value(for: variable))
這是一個可行的解決方案。 使用 Xcode 12.5 和 Swift 5.4 測試
var variable = false
enum enumeraton {
case thing
case other
var value: Int {
switch self {
case .thing:
if variable {
return 1
} else {
return 2
}
case .other:
return 0
}
}
}
let foo = enumeraton.thing
print(foo.value) //prints 2
variable = true
print(foo.value) //prints 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.