Joj*_*dmo 5 ios swift swift2 swift2.2
将来,C 风格的 for 语句将从 Swift 中删除。虽然有许多替代方法可以使用 C 风格的 for 语句,例如 usingstride或..<运算符,但这些仅适用于某些条件
例如,在旧版本的 swift 中,可以String.CharacterView.Index使用 C 样式的 for 语句循环遍历字符串的每个其他索引 ,
for var index = string.startIndex; index < string.endIndex; index = string.successor().successor(){
//code
}
Run Code Online (Sandbox Code Playgroud)
然而,这现在已被弃用。有一种方法可以做同样的事情,使用while循环
var index = string.startIndex
while index < string.endIndex{
//code
index = index.successor().successor()
}
Run Code Online (Sandbox Code Playgroud)
但这只不过是一种解决方法。有..<运算符,它非常适合循环遍历字符串的每个索引
for index in string.startIndex..<string.endIndex
Run Code Online (Sandbox Code Playgroud)
然而,这无助于循环遍历字符串的每个其他索引或字符串的每个第 n 个索引
除了循环之外,还有更多“快速”的方式来循环遍历字符串的所有其他索引while吗?这个问题不仅与字符串索引有关,而且只与具有.successor()一般功能的对象有关,例如wherestride和..<don't work。
你可以使用“步进”
let str = "abcdefgh"
for i in str.characters.indices where str.startIndex.distanceTo(i) % 2 == 0 {
print(i,str.characters[i])
}
Run Code Online (Sandbox Code Playgroud)
印刷
0 a
2 c
4 e
6 g
Run Code Online (Sandbox Code Playgroud)
更新,基于 Sulthan 的注释
for (i,v) in str.characters.enumerate() where i % 2 == 0 {
print(i, v)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
386 次 |
| 最近记录: |