【问题标题】:How to check if an Int in a constant, matches an Int in a CountableClosedRange<Int>如何检查常量中的 Int 是否与 CountableClosedRange<Int> 中的 Int 匹配
【发布时间】:2019-02-04 23:58:33
【问题描述】:

我是编程新手。自学,所以想在网上寻求帮助。

我想看看我存储在常量中的 Int 是否匹配 CountableClosedRange 中的单个数字,如果是,则输出布尔值 true。见下文:

let physics = 76
let math = 79
let history = 94
let language = 98


let aPlus = [95...100]

let didPhysicsGetA = physics == aPlus

76 显然不在那个范围内,所以在这种情况下,我希望 didPhysicsGetA 恢复为假。

我该怎么做,还有更好的方法吗?

【问题讨论】:

标签: ios swift


【解决方案1】:

首先[95...100] 将导致[CountableClosedRange&lt;Int&gt;] 表示CountableClosedRange&lt;Int&gt; 的数组。所以你需要的是(95...100)

let aPlus = (95...100) // or you can even emit the brackets 95...100

现在要检查Int 是否在此aPlus 范围内,您可以像这样使用模式匹配 运算符~=

let didPhysicsGetA = aPlus ~= physics
print(didPhysicsGetA) // false

【讨论】:

    【解决方案2】:

    [] 表示一个数组。你只想要一个范围,而不是一个范围数组,所以你应该删除 []:

    let aPlus = 95...100
    

    要检查一个数字是否在一个范围内,您可以使用~= 模式匹配运算符,

    aPlus ~= physics
    

    或致电contains:

    aPlus.contains(physics)
    

    你应该选择对你来说最易读的那个。

    【讨论】:

    • 你的模式匹配被颠倒了。它应该是 aPlus ~= 物理。否则你会得到一个错误“无法转换类型的值...”
    • @P.Stern 天哪。 2年前我在做什么! ?
    【解决方案3】:

    试试这个:

    let physics = 76
    let language = 98
    
    let aPlus = 95...100
    
    print(aPlus ~= physics) // false
    print(aPlus ~= language) // true
    

    aPlus.contains(physics) // false
    aPlus.contains(language) // true
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-16
      • 2022-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多