swift - 如何比较 Swift 中的范围?

标签 swift

我不确定这是 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/

相关文章:

ios - 将文件从音乐库导出到文档目录(Swift 5)

ios - '数组 <(对象)>' is not convertible to ' bool 值'

swift - iWatch 中的 NSLocalizedString

ios - 正则表达式在使用 MVC 设计模式的 iOS 应用程序中的什么位置?

ios - 如果我将 CIFilter 应用于 CIImage - Swift 2.0,应用程序会崩溃

swift - 为什么我的任务被暂停? swift ,dataTaskWithURL

ios - 无法为类型 UnsafeMutablePointer<UInt8> 调用初始值设定项

ios - 如何将数据从一个 View Controller 传递到另一个 SWIFT

ios - 将 UITableView 方向更改为从右到左

swift - 如何使用 Spritekit 和 Swift 根据点击来上下移动球?