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

标签 swift swift2 swift2.2

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

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

进入之内
for idx in (0...data.count-1).reverse()  // <--- new statement

但是,我发现当执行期间data.count为0时,新语句将崩溃,并出现错误fatal error: Can't form range with end < start
有没有最好的/标准的方法来为这个案例编码?
另外,我认为我必须使用不同类型的循环/语法来替换我统一的c风格循环。欢迎对此提出进一步的意见或建议。

最佳答案

您应该使用Strideable.stride(through:by:)来生成for循环范围,如下所示:

for idx in (data.count-1).stride(through: 0, by: -1) {
    print(idx)
}

即使data.count == 0,它也能工作。

关于swift - 在Swift 2.2中,如何合并for循环语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36244732/

相关文章:

ios - 在 token Swift 4 中检索单值键

swift - Switch 语句必须详尽 - Xcode 错误?

ios - 在 Swift 中使用 UITapGestureRecognizer 的参数

string - 在Swift 2(最新Beta)中将ASCII字符值的字符串转换为实际字符串

swift - 将枚举类型作为通用参数传递给 swift 2.2 iOS 中的函数

swift - 仅从可包装的可选产品中向下转换;您是要使用'!'吗?

ios - 如何为Pod指定依赖项

ios - UILabel textRectForBounds 不起作用

json - 我可以在Swift中声明一个名为“类型”的变量吗?

ios - 使用 Swift 2.0 理解可选