swift 高级模式匹配 if case

又到了熊孩子们爱闹腾的季节。有人抓住商机,打出了如下广告:


swift 高级模式匹配 if case_第1张图片

我们如何用最短的代码实现这个需求呢?

let age = 18
let sex = "girl"

if (sex == "girl" && age >= 18 && age <= 25){
    print("免费")
} else {
    print("不带")
}

显然这样的代码时很啰嗦的,有很多个且,如果带小孩子收费的话就会更加混乱。

swift2中为我们增加了一种新的语法: if case
能为我们非常方便的匹配一个数字区间:

if case 18...25 = age {
    print("免费")
} else {
    print("不带")
}

这样有可能混进男孩......要不要多写一个if保证自己的人身安全呢?

当然是不需要的,swift2为我们提供了条件筛选的语法: where

if case 18...25 = age where sex == "girl"{
    print("免费")
} else {
    print("不带")
}

大功告成,顺利的哄孩子睡觉吧~

你可能感兴趣的:(swift 高级模式匹配 if case)