如何在Swift中指定要避免的范围

时间:2018-12-09 23:50:41

标签: swift

我正在努力做到这一点,因此当我提供一个不在30年代的值时,它会打印出一条消息。这是我的代码:

let age = 25

if case 18...25 = age {
  print("Cool demographic")
}
else if case !(30...39) = age {
  print("not in there thirties")
}

4 个答案:

答案 0 :(得分:3)

您可以使用模式匹配运算符~=

static func ~= (pattern: Range<Bound>, value: Bound) -> Bool
  

您可以使用此模式匹配运算符(〜=)测试是否   值包含在范围内。以下示例使用〜=   运算符,以测试整数是否包含在   数字。

let age = 29

if 18...25 ~= age {
    print("Cool demographic")
} else if !(30...39 ~= age) {
    print("not in there thirties") // "not in there thirties\n"
}

答案 1 :(得分:2)

我喜欢contains,而不是不必要的if case。在某些情况下需要if case,但这不是其中一种。很好地说您的意思。所以:

let age = 25

if (18...25).contains(age) {
    print("Cool demographic")
}
else if !(30...39).contains(age) {
    print("not in their thirties")
}

答案 2 :(得分:0)

如果age是整数,则可以直接比较:

if age < 30 || age > 39 {
    print("not in thirties")
}

答案 3 :(得分:0)

您还可以使用switch,在我看来,它比if-else更具表现力:

let age = 25

switch age {
case 18...25:
    print("Cool demographic")
case _ where !(30...39 ~= age):
    print("not in there thirties")
default:
    break
}

您可以在this link的Imanou Petit的switch中找到很好的例子: