【发布时间】:2014-08-04 00:25:29
【问题描述】:
是否可以在 Swift 中比较两个 String.Index 值?我正在尝试逐个字符地处理字符串,并且有几次我需要检查我是否在字符串的末尾。我试过只是做
while (currentIndex < string.endIndex) {
//do things...
currentIndex = currentIndex.successor()
}
抱怨类型转换。然后,我尝试为< 定义和重载:
@infix func <(lhs: String.Index, rhs: String.Index) -> Bool {
var ret = true //what goes here?
return ret
}
这消除了编译错误,但我不知道该怎么做才能正确比较 lhs 和 rhs。这是我应该使用String.Index 的方式,还是有更好的方法来比较它们?
【问题讨论】:
-
覆盖运算符不是解决方案。
-
很明显,覆盖
<不会解决任何问题,但这就是我希望能够比较两个String.Index值的方式,如果可能的话。有没有其他方法可以做到这一点? -
在 Swift 3 中,
<似乎有效。