Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Swift 2.2中,如何合并for循环语句?_Swift_Swift2_Swift2.2 - Fatal编程技术网

在Swift 2.2中,如何合并for循环语句?

在Swift 2.2中,如何合并for循环语句?,swift,swift2,swift2.2,Swift,Swift2,Swift2.2,在Swift 2.2中,不推荐使用C-style for语句,因此我修改了以下for循环: for var idx=data.count-1; idx>=0; --idx 进入 对于(0…data.count-1).reverse()中的idx,您应该使用它来生成for循环范围,如下所示: for idx in (data.count-1).stride(through: 0, by: -1) { print(idx) } 即使您应该使用data.count==0来生成for循

在Swift 2.2中,不推荐使用C-style for语句,因此我修改了以下for循环:

for var idx=data.count-1; idx>=0; --idx
进入

对于(0…data.count-1).reverse()中的idx,您应该使用它来生成for循环范围,如下所示:

for idx in (data.count-1).stride(through: 0, by: -1) {
    print(idx)
}
即使您应该使用
data.count==0
来生成for循环范围,它也可以工作,如下所示:

for idx in (data.count-1).stride(through: 0, by: -1) {
    print(idx)
}
即使将范围创建为

0 ... data.count-1
如果
data.count
为零,则终止运行时异常。它是 通常最好使用
。创建一个范围作为

0 ... data.count-1
如果
data.count
为零,则终止运行时异常。它是
通常最好使用
。相反,在(0..中为idx使用
,在(0..中为idx使用
在这样一个简单的循环中,不需要算术运算

如果
数据
是一个数组,请使用
索引

for index in data.indices {
}

for index in data.indices.reverse() {
}
或者直接访问数据

for item in data {
}

for item in data.reverse() {
}
或者使用
枚举

for (index, item) in data.enumerate() {
}
请注意,上述in
循环中的所有
也可以写成
forEach

data.indices.forEach {
}

在这样一个简单的循环中,不需要算术运算

如果
数据
是一个数组,请使用
索引

for index in data.indices {
}

for index in data.indices.reverse() {
}
或者直接访问数据

for item in data {
}

for item in data.reverse() {
}
或者使用
枚举

for (index, item) in data.enumerate() {
}
请注意,上述in
循环中的所有
也可以写成
forEach

data.indices.forEach {
}

你的for(;;)和for in循环不一样:第一个一循环从data.count-1循环到1,第二个一循环从data.count-1循环到0。@瓦伦廷,谢谢,我已经修改了它。它并不是为了不同。不客气。我用stride(through:by:)而不是stride(to:by:)更新了我的答案,如果它对你有帮助,你可能会接受它。你的for(;;)对于in循环,则不同:第一个一循环从data.count-1循环到1,第二个一循环从data.count-1循环到0。@瓦伦丁,谢谢,我已经修改了它。它并不意味着不同。不客气。我用stride(through:by:)而不是stride(to:by:)更新了我的答案,如果它对你有帮助,你可能会接受它。