将来,C 风格的 for 语句将从 Swift 中移除。虽然有许多替代方法可以使用 C 风格的 for 语句,例如 usingstride
或..<
operator,但这些仅在某些情况下有效
例如,在旧版本的 swift 中,可以String.CharacterView.Index
使用 C 风格的 for 语句循环遍历字符串的每个其他索引
for var index = string.startIndex; index < string.endIndex; index = string.successor().successor(){
//code
}
然而,这现在已被弃用。有一种方法可以做同样的事情,使用while
循环
var index = string.startIndex
while index < string.endIndex{
//code
index = index.successor().successor()
}
但这只不过是一种解决方法。有..<
运算符,它非常适合遍历字符串的每个索引
for index in string.startIndex..<string.endIndex
但这无助于遍历字符串的所有其他索引或字符串的每个第 n 个索引
除了循环之外,还有更多“快速”的方式来遍历字符串的所有其他索引while
吗?这个问题不仅与字符串索引有关,还与具有.successor()
一般功能的对象有关,例如在哪里工作stride
和..<
不工作。