我需要迅速以代码“如果数字是介于1到5”“如果数为1〜5之间”如何包含范围例如,在迅速
我试过,但它不工作。
if myPercent == (1 ... 5) {
let numberGroup = 1
我该如何解决这个问题?
我需要迅速以代码“如果数字是介于1到5”“如果数为1〜5之间”如何包含范围例如,在迅速
我试过,但它不工作。
if myPercent == (1 ... 5) {
let numberGroup = 1
我该如何解决这个问题?
你可以只使用两个条件来检查它是否在范围:
if myPercent >= 1 && myPercent <= 5 {
...
}
使用contains
:
if (1...5).contains(myPercent) {
...
}
contains
似乎是基本的方式与范围内工作。
这里有一些补充...
使用模式匹配操作:
if 1...5 ~= myPercent {
//...
}
使用,如果情况:
if case 1...5 = myPercent {
//...
}
完美。感谢@OOpPer很好很简单。这就是我所寻找的 - 我知道我的尝试很接近,这正是我想要达到的目标。 –
考虑使用扩展与switch statement组合:
extension Int {
func isBetween(range:Range<Int>) -> Bool {
switch self {
case range:
return true
default:
return false
}
}
}
这使得实现更容易:
5.isBetween(1...5) // true
6.isBetween(1...5) // false
注意,对于这在Xcode 8 /斯威夫特3,必须使用半开区间操作员的工作量:
5.isBetween(1..<6) // true
6.isBetween(1..<6) // false
所以在您的实例:
if myPercent.isBetween(1..<6) {
let numberGroup = 1
}
或许:
let numberGroup = myPercent.isBetween(range: 1..<6) ? 1 : 0
很棒@ Aurora0001 - 完美运作。我接受这个答案,谢谢 –
很高兴帮助。我会测试一下,看看我的解决方案还是@ dasblinkenlight的执行效果更好:我怀疑'contains'方法对于大范围会很慢,但在这里可能很好。 – Aurora0001