Swift for循环

大部分开发者更喜欢直接使用C式循环代码。在swift3.0后,C语言形式被彻底废弃.

1:如何遍历一个字典或者数组?

      首先要提的是swift的for..in..语法,这个语法在python当中被称之为迭代。用于数组,字典之类的数据内容遍历。从作用上分析,是直接将数组元素赋值给变量,并取出,无需通过数组下标来取值。而针对于字典,除了取出key值,我们还可以同时取出关键字。具体代码如下

        let list = [1,3,5,7,"string test"] as [Any]
        for i in list{
            print(i)
        }
        let dict = ["name":"key name","name1":"key1 name","name2":"key 2 name"]
        for key in dict{
            print(key)
        }

打印结果

1
3
5
7
string test
("name1", "key1 name")
("name", "key name")
("name2", "key 2 name")

2:forx循环实现一个计数器

      更多时候,循环变量被用于约束循环的次数或者做为int类型进行引用,值得一提的是,swift支持直接区间遍历。在3.0版本之前,python的区间语法range关键词适用。在3.0以后。swift不推荐使用。并且基于自身语言特性,在使用时,需要额外加关键字。那么,我们如何用swift带来的语法糖写出漂亮的for循环呢 代码如下:

for i in 1..<10{
    print(i)
    // 打印结果为1-9
}
for i in 1...10{
    print(i)
    //打印结果为1-10
}

3:forx循环递减

    这也许是swift的一个大坑了,当然解决方式很容易。只需要一个关键字即可实现,swift3.0之后稍有变化。对要遍历的区间调用reverse()方法,即可实现for循环的反向遍历,代码如下

for i in (0...10).reverse(){
    print(i)<br>    // 打印结果为10-0
}

4: 也许,你想要在循环就过滤掉一系列毫无意义的数据?,swift提供在循环时直接过滤的方法,代码如下:

for i in (1...10).filter({ i in i % 2 == 0}) {
    print(i)
    //输出结果为1-10之间的偶数
}
///补充一个漂亮的语法糖///
for i in (1...10).filter({ $0 % 2 == 0}) {//swift闭包可以省略参数且用$0匿名,第二个参数则用$1,以此类推
    print(i)
    //输出结果为1-10之间的偶数
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值