`

swift -> 关于for循环------swift3.0

 
阅读更多

 

 

在程序开发当中,for循环使用的频率无疑是最高的。常用的swift循环是递增式遍历。当然各种循环,swift都能办到。但其大多采用关键字形式实现,大部分开发者更喜欢直接使用C式循环代码。在swift3.0后,C语言形式被彻底废弃,因此从低版本升上来的代码如果是swift风格写法,按照提示基本可以直接fix。但如果很多循环实现都是基于C语言形式,那不得不讨论一下如何拯救这个可怕的习惯了。swift的循环语言特性跟python最为接近(ps:我学的语言当中最接近)。所以,大多数python循环能处理的情况,swift都能办到且更为优雅。

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

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

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

2:也许,我仅仅是需要一个计数器?

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

1
2
3
4
5
6
7
8
9
10
11
12
13
for i in 1..<10{
    print(i)
    // 打印结果为1-9
}
for i in 1...10{
    print(i)
    //打印结果为1-10
}
 
for i in Range(start1,end10){
    print(i)
    // 打印结果为1-9 不推荐使用 
}

  3:help 我真的需要递减! 

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

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

  4:这就结束了吗

    当然不是啦,从语言特性上来上说,python对数组和循环的处理是最令人觉得舒适的。而在循环的处理上,几乎涵盖了python的所有特性,且大多也是以函数调用的方式来处理的。下面就要介绍一下平时可能会用到的一些方法。

4.1.enumerate

   如词,这是为遍历对象调用一个枚举方法,在对数组等结构进行遍历时,我们偶尔需要知道每次遍历的索引,那么就需要用到enumerate了,其返回对象是一个元组,形式为(x,y),x代表遍历的索引值,y代表遍历的元素。代码如下:

1
2
3
4
5
for (indexiin (1...10).enumerate(){
    print(index)// 遍历索引
    print(i// 遍历元素
     
}

4.2 filter

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

1
2
3
4
5
6
7
8
9
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之间的偶数
}

  

  如上,除了单独调用方法对循环进行处理之外,swift还支持在循环中嵌套调用各种方法,这使得对数据的处理更为方便快捷,所以,也许彻底放弃C式循环,未尝不是一个好选择

  

 

python佶屈 能与周诰齐?书读百遍义终现,oc聱牙 不过殷盘半!码敲千行功自成。--业精于勤ing~~~其实最喜欢的是swift啦
 
 

 

 

分享到:
评论

相关推荐

    swift-swift3.0轮播图

    本教程将围绕“swift-swift3.0轮播图”这一主题,深入探讨如何在Swift 3.x环境中实现一个高效、易用的图片和文字轮播器。 首先,我们需要了解轮播图的基本功能和结构。轮播图通常包括以下组成部分: 1. 图片或文字...

    swift-CycleLabel循环滚动的label控件

    Swift中的CycleLabel是一款用于创建循环滚动效果的UILabel控件,非常适合在应用中展示滚动广告、轮播图或者滚动公告等信息。它通过简单的API接口,可以让开发者轻松地实现这一功能,提高了用户界面的动态感和吸引力...

    swift-MagiCycleView一个Swift自动轮播器

    func cycleView(_ cycleView: MagiCycleView, viewForItemAt index: Int) -&gt; UIView { let imageView = UIImageView(image: UIImage(named: images[index])) return imageView } } ``` 5. **自定义配置**:根据...

    swift-对前辈30天学Swift的3.0翻版

    《Swift学习之旅:30天精通Swift 3.0》 Swift,苹果公司推出的开源编程语言,自2014年发布以来,以其简洁、安全和高性能的特点深受开发者喜爱。本资源是“对前辈30天学Swift”的3.0版本,采用纯代码的方式进行了...

    Swift3.0 主要新特性介绍

    只需要打开你的项目,通过菜单栏选择 `Edit -&gt; Convert -&gt; To Current Swift Syntax...`,Xcode 将会自动帮助你完成大部分转换工作。当然,也有一些细节需要注意,比如: - **类型更正**:例如将 `[String:...

    IOS swift3.0 下闭包语法整理

    以下是关于Swift 3.0下闭包语法的详细说明: 一、闭包的概念 闭包在Swift中类似于Objective-C中的Block,它们都是能够捕获和存储其所在上下文中变量的匿名函数。闭包的本质是一个可执行的代码块,可以作为参数传递...

    Swift_Apprentice_v3.0 (Swift4 and Xcode9)

    2. **基本控制流** (`03-basic-control-flow`): Swift中的控制流程语句包括条件语句(如if-else)、循环(如for-in和while)以及switch语句,这些都是编写复杂逻辑的关键部分。 3. **字符串处理** (`09-strings`): ...

    swift 4.2-3.0最新版基础到高阶电子书

    首先,书中会介绍Swift的基础部分,包括变量和常量的声明(let与var)、数据类型(Int、Double、String等)、运算符(算术、比较、逻辑等)以及控制流(if语句、switch语句、for-in循环和while循环)。此外,还会...

    Swift3.0 闭包整理 - CocoaChina_让移动开发更简单1

    Swift3.0 闭包是该语言中的一个重要概念,它是一种可以捕获和存储周围环境中的数据(称为闭包环境或上下文)的匿名函数。闭包在Swift中被广泛用于处理异步操作、排序、过滤等任务。下面将详细阐述Swift3.0中的闭包...

    Swift_4_Apprentice_v3.0_Third_Edition

    《Swift 4 Apprentice v3.0 第三版》是一本专为Swift 4编程语言学习者设计的教程,旨在帮助初学者快速掌握Swift语言并应用于iOS应用开发。这本书结合了理论与实践,提供了四个实际的小程序项目,使读者在实践中学习...

    Swift3.0中文版文档

    - **控制流(Control Flow)**:控制流章节讲述了条件语句(如if语句)、循环语句(如for循环)等流程控制结构,帮助开发者编写逻辑清晰的程序。 - **函数(Functions)和闭包(Closures)**:这两个章节详细介绍了Swift中函数...

    Swift3.0游戏开发实战教程

    Swift3.0游戏开发实战教程是一本专注于使用Swift编程语言进行游戏开发的实践性教材,适合初学者和有一定编程基础的开发者。Swift是苹果公司推出的一种现代化、高性能的编程语言,特别适合iOS、macOS、watchOS以及...

    swift3.0新浪微博项目视频

    根据提供的标题、描述、标签及部分内容,我们可以了解到这是一个关于使用Swift 3.0开发新浪微博客户端项目的视频教程系列。下面将对各个章节所涉及的关键知识点进行详细的解析。 ### Swift 3.0新浪微博项目视频 ##...

    swift-使用方便简洁高效功能强大一行代码即可实现图片无限轮播;

    Swift是一种由Apple开发的编程语言,它以其语法简洁、安全高效而受到开发者喜爱。在iOS、macOS等Apple平台的应用开发中,Swift扮演着至关重要的角色。标题提到的"swift-使用方便简洁高效功能强大一行代码即可实现...

    Swift-Example-Apps:Swift5学习和示例应用程序

    此外,Swift中的控制流语句如if条件判断、switch选择结构、for-in循环以及while循环也是构建计算器逻辑的关键部分。例如,为了实现除法操作,我们需要检查除数是否为零,这可以通过if语句来实现: ```swift func ...

    swift中c风格的for循环执行效率

    本文将深入探讨Swift中C风格for循环的工作原理、效率差异以及在Swift 3.0及后续版本中对于这种循环方式的改变。 首先,我们来理解一下什么是C风格的for循环。在Swift中,C风格的for循环通常指的是类似于以下形式的...

    Swift Apprentice V3.0

    《Swift Apprentice V3.0》是一本专注于Swift编程语言的学习指南,特别针对Swift 4版本进行了详尽的讲解。这个资源包含三种格式:PDF、EPUB,为学习者提供了多种阅读选择,无论是在电脑上还是移动设备上都能方便地...

    The Swift Programming Language 中文版 - v1.8

    #### 关于Swift 3.0更新 Swift 3.0标志着自Swift开源以来的第一个重大版本更新。它不仅带来了许多新功能,而且还引入了一些重要的语言变更,使其与之前的Swift 2.2和Swift 2.3版本不完全兼容。这一版本的发布意味着...

Global site tag (gtag.js) - Google Analytics