如何在Swift 2.2中编写非C类for循环?

如何在Swift 2.2中编写非C类for循环?,第1张

概述我更新了 Xcode(7.3)并且有很多变化;表达式的C-like将被弃用.举个简单的例子, for var i = 0; i <= array.count - 1; i++ { //something with array[i] } 如何编写这个清晰简单的C-like for-loop以符合新的变化? for var i = 0, j = 1; i <= array.cou 我更新了 Xcode(7.3)并且有很多变化;表达式的C-like将被弃用.举个简单的例子,
for var i = 0;  i <= array.count - 1;  i++ {      //something with array[i] }

如何编写这个清晰简单的C-like for-loop以符合新的变化?

for var i = 0,j = 1;  i <= array.count - 2 && j <= array.count - 1;  i++,j++{     //something with array[i] and array[j]}

更新.
还有一个变种

for var i = 0; i <= <array.count - 1; i++{    for var j = i + 1; j <= array.count - 1; j++    {        //something with array[i] and array[j]    }}

和更多 …

for var i = 0,j = 1,g = 2;  i <= array.count - 3 && j <= array.count - 2 &&   g <= array.count - 1;  i++,j++,g++{     //something with array[i] and array[j] and array[g]}

Update2经过几次建议,while循环是优选的,所有情况的通用替换比C-like for-loop的简单示例更复杂(适用于in表达式).不需要每次都寻找新的方法.
例如:而不是

for var i = 0; i <= <array.count - 1; i++{    for var j = i + 1; j <= array.count - 1; j++    {        //something with array[i] and array[j]    }}

我可以用

var i = 0while i < array.count{    var j = i + 1    while j < array.count    {        //something with array[i] and array[j]        j += 1    }    i += 1}
最坏的情况是,您可以将其转换为while循环.
var i = 0var j = 1while i <= array.count -2 && j <= array.count - 1 {    // something    i += 1    j += 1}

– 编辑 –

因为你说过,“while循环是所有情况的优选通用替换比C-like for-loop的简单例子更复杂”……我觉得有必要扩展我的答案.我不想对一堆坏代码负责……

在大多数情况下,有一个简单的for-in循环可以处理这种情况:

for item in array {        // do something with item    }    for (item1,item2) in zip(array,array[1 ..< array.count]) {        // do something with item1 and item2    }    for (index,item1) in array.enumerate() {        for item2 in array[index + 1 ..< array.count] {            // do soemthing with item1 and item2        }    }

对于你的最后一种情况,你可能有理由使用for look,但这是一个非常罕见的边缘情况.

不要使用for循环丢弃代码.

总结

以上是内存溢出为你收集整理的如何在Swift 2.2中编写非C类for循环?全部内容,希望文章能够帮你解决如何在Swift 2.2中编写非C类for循环?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1037246.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存