如果整数大于 x 但小于 y (Swift)

if integer is greater than x but less than y (Swift)

我想知道是否有任何流畅的方法来检查 swift 范围内的整数值。

我有一个整数,可以是 0 到 1000 之间的任何数字

我想为 "if the integer is between 300 and 700 - do this and if its any other number - do something else"

写一个 if 语句

我可以写:

if integer > 300 {
    if integer < 700 {
      //do something else1
    }
    //do something
} else {
    // do something else2

}

但我想尽量减少编写的代码量,因为 "do something else1" 和 "do something else2" 应该是相同的

看来你不会写:

if 300 < integer < 700 {

} else {

}

我尝试使用

if integer == 300..<700 {
}

但这也没有用。有人有建议吗?

你试过吗?

if integer > 300 && integer < 700 {
    // do something
} else {
    // do something else               
}

希望对您有所帮助

有一个类型 HalfOpenInterval 可以用 ... 构造并且有一个 .contains 方法:

if (301..<700).contains(integer) {
    // etc.
}

注意,301..<700 本身会创建一个 Range,它没有 contains 函数,但 Swift 的类型推断会发现您正在调用一个只有 HalfOpenInterval 拥有的方法,因此选择了特定的重载。

我提到这个只是因为如果你想将间隔存储为变量而不是在线使用它,你需要指定:

let interval = 301..<700 as HalfOpenInterval
if interval.contains(integer) {
  // etc.
}