如何比较Swift中的范围?
发布时间:2020-12-14 05:25:43 所属栏目:百科 来源:网络整理
导读:我不确定它是否是XCode中的错误,或者我不理解 Swift中的范围.以下是一些显示范围如何工作的代码: let range = 0..5contains(range,0) // truecontains(range,5) // falserange.startIndex == 0 // truerange.endIndex == 5 // truelet str = "Hello,playgro
我不确定它是否是XCode中的错误,或者我不理解
Swift中的范围.以下是一些显示范围如何工作的代码:
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'") } } 如果range.startIndex == 0 {我在读取行中的跟踪错误
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与字符串中的第二个字符索引进行比较,则可以使用 let str = "Hello,playground" if let range = str.rangeOfString("e") { if range.startIndex == advance(str.startIndex,1) { print("str's 2nd character is 'e'") } } 如果您需要知道范围的长度,那么您可以使用 let str = "Hello,playground" if let range = str.rangeOfString("play") { let length = distance(range.startIndex,range.endIndex) print("found a range (length) characters long") } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |