1
如何寫這個如何在IF條件下獲取枚舉的參數值?
switch parameter {
case .CaseA(let valueA):
print(valueA)
}
爲如果條件語句?這不起作用:
if parameter == .CaseA(let valueA) {
print(valueA)
}
如何寫這個如何在IF條件下獲取枚舉的參數值?
switch parameter {
case .CaseA(let valueA):
print(valueA)
}
爲如果條件語句?這不起作用:
if parameter == .CaseA(let valueA) {
print(valueA)
}
可以使用if case
如下
enum Foo {
case A(Int)
case B(String)
}
let parameter = Foo.A(42)
/* if case ... */
if case .A(let valueA) = parameter {
print(valueA) // 42
}
的if case
模式匹配相當於switch
圖案與空(未使用)默認的情況下,例如匹配
/* switch ... */
switch parameter {
case .A(let valueA):
print(valueA) // 42
case _:()
}
有關詳情,請參閱the Language Reference - Patterns。
謝謝。你的意思是'如果情況.A(讓valueA)==參數{'? – Manuel
@Manuel其實,沒有。我們正在執行枚舉模式匹配而不是檢查是否相等;在這種情況下,運算符「=」用於前者。 – dfri
明白了,現在我更加印象深刻。謝謝 – Manuel