一尘不染

Swift 2-“ if”中的模式匹配

swift

最近,我看到了Apple的WWDC
2015主题演讲。我也看了一些文档,但是找不到“如果…中的模式匹配”部分,即它们在其中一张幻灯片上的书写方式。(来自Apple
Events的
68分钟00秒视频)

你知道这是什么意思吗?还是语法?


阅读 266

收藏
2020-07-07

共1个答案

一尘不染

它真正的意思是,if语句现在已经支持模式匹配,就像switch语句一样。例如,以下是使用if / else if /
else语句“切换”枚举大小写的有效方法。

enum TestEnum {
    case One
    case Two
    case Three
}

let state = TestEnum.Three

if case .One = state {
    print("1")
} else if case .Two = state {
    print("2")
} else {
    print("3")
}

现在,以下是一种检查是否someInteger在给定范围内的可接受方法。

let someInteger = 42
if case 0...100 = someInteger {
    // ...
}

这是使用The Swift Programming
Language中
的可选模式的另外几个示例

let someOptional: Int? = 42
// Match using an enumeration case pattern
if case .Some(let x) = someOptional {
    print(x)
}

// Match using an optional pattern
if case let x? = someOptional {
    print(x)
}
2020-07-07