如何比较Swift中的范围?

如何比较Swift中的范围?,第1张

概述我不确定它是否是XCode中的错误,或者我不理解 Swift中的范围.以下是一些显示范围如何工作的代码: let range = 0..<5contains(range, 0) // truecontains(range, 5) // falserange.startIndex == 0 // truerange.endIndex == 5 // truelet str = "Hell 我不确定它是否是XCode中的错误,或者我不理解 Swift中的范围.以下是一些显示范围如何工作的代码:
let range = 0..<5contains(range,0) // truecontains(range,5) // falserange.startIndex == 0 // truerange.endindex == 5 // truelet 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'")    }}

如果range.startIndex == 0 {我在读取行中的跟踪错误

Cannot invoke ‘==’ with an argument lis of type (String.index,
IntegerliteralConvertible)’

rangeOfString实际上返回一个String.Indexs范围,而不是Ints;两者无法比较(即使 *** 场显示范围为0 ..< 5).您可以在 this question的答案中了解原因.

如果您希望您的示例正常工作,而不是将range.startIndex与0进行比较,则应将其与str.startIndex进行比较:

let str = "Hello,playground"if let range = str.rangeOfString("Hello") {    if range.startIndex == str.startIndex {        print("str starts with 'Hello'")    }}

如果需要将字符串的startIndex与字符串中的第二个字符索引进行比较,则可以使用advance函数将str.startIndex递增1并将range.startIndex与之比较:

let str = "Hello,playground"if let range = str.rangeOfString("e") {    if range.startIndex == advance(str.startIndex,1) {        print("str's 2nd character is 'e'")    }}

如果您需要知道范围的长度,那么您可以使用distance功能:

let str = "Hello,playground"if let range = str.rangeOfString("play") {    let length = distance(range.startIndex,range.endindex)    print("found a range \(length) characters long")}
总结

以上是内存溢出为你收集整理的如何比较Swift中的范围?全部内容,希望文章能够帮你解决如何比较Swift中的范围?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1031214.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-23
下一篇2022-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存