我不确定这是 XCode 中的错误还是我不了解 Swift 中的范围。下面是一些代码来展示 range 是如何工作的:
let range = 0..<5
contains(range, 0) // true
contains(range, 5) // false
range.startIndex == 0 // true
range.endIndex == 5 // true
let str = "Hello, playground"
str.rangeOfString("Hello")! // 0..<5
太棒了!现在让我们在实际代码中使用它:
let str = "Hello, playground"
if let range = str.rangeOfString("Hello") {
if range.startIndex == 0 {
print("str starts with 'Hello'")
}
}
我在读取 if range.startIndex == 0 {
Cannot invoke '==' with an argument lis of type (String.index, IntegerLiteralConvertible)'
最佳答案
Swift 中的 ~= 运算符
有时,我们必须检查一个数字是否在一个范围内,像往常一样,我们会做类似的事情:
检查数字是否在 0 到 100 之间包括
if number >=0 && number <= 100 {
// TODO:
}
它有效,但我们可以做得更好、更快。 Swift 标准库有一个 ~= 运算符,所以我们可以这样做:
if 0...100 ~= number {
// TODO:
}
关于swift - 如何比较 Swift 中的范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26642255/