在程序开发当中,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 ( start : 1 , end : 10 ){
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 ( index , i ) in ( 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式循环,未尝不是一个好选择
相关推荐
本教程将围绕“swift-swift3.0轮播图”这一主题,深入探讨如何在Swift 3.x环境中实现一个高效、易用的图片和文字轮播器。 首先,我们需要了解轮播图的基本功能和结构。轮播图通常包括以下组成部分: 1. 图片或文字...
Swift中的CycleLabel是一款用于创建循环滚动效果的UILabel控件,非常适合在应用中展示滚动广告、轮播图或者滚动公告等信息。它通过简单的API接口,可以让开发者轻松地实现这一功能,提高了用户界面的动态感和吸引力...
func cycleView(_ cycleView: MagiCycleView, viewForItemAt index: Int) -> UIView { let imageView = UIImageView(image: UIImage(named: images[index])) return imageView } } ``` 5. **自定义配置**:根据...
《Swift学习之旅:30天精通Swift 3.0》 Swift,苹果公司推出的开源编程语言,自2014年发布以来,以其简洁、安全和高性能的特点深受开发者喜爱。本资源是“对前辈30天学Swift”的3.0版本,采用纯代码的方式进行了...
只需要打开你的项目,通过菜单栏选择 `Edit -> Convert -> To Current Swift Syntax...`,Xcode 将会自动帮助你完成大部分转换工作。当然,也有一些细节需要注意,比如: - **类型更正**:例如将 `[String:...
以下是关于Swift 3.0下闭包语法的详细说明: 一、闭包的概念 闭包在Swift中类似于Objective-C中的Block,它们都是能够捕获和存储其所在上下文中变量的匿名函数。闭包的本质是一个可执行的代码块,可以作为参数传递...
2. **基本控制流** (`03-basic-control-flow`): Swift中的控制流程语句包括条件语句(如if-else)、循环(如for-in和while)以及switch语句,这些都是编写复杂逻辑的关键部分。 3. **字符串处理** (`09-strings`): ...
首先,书中会介绍Swift的基础部分,包括变量和常量的声明(let与var)、数据类型(Int、Double、String等)、运算符(算术、比较、逻辑等)以及控制流(if语句、switch语句、for-in循环和while循环)。此外,还会...
Swift3.0 闭包是该语言中的一个重要概念,它是一种可以捕获和存储周围环境中的数据(称为闭包环境或上下文)的匿名函数。闭包在Swift中被广泛用于处理异步操作、排序、过滤等任务。下面将详细阐述Swift3.0中的闭包...
《Swift 4 Apprentice v3.0 第三版》是一本专为Swift 4编程语言学习者设计的教程,旨在帮助初学者快速掌握Swift语言并应用于iOS应用开发。这本书结合了理论与实践,提供了四个实际的小程序项目,使读者在实践中学习...
- **控制流(Control Flow)**:控制流章节讲述了条件语句(如if语句)、循环语句(如for循环)等流程控制结构,帮助开发者编写逻辑清晰的程序。 - **函数(Functions)和闭包(Closures)**:这两个章节详细介绍了Swift中函数...
Swift3.0游戏开发实战教程是一本专注于使用Swift编程语言进行游戏开发的实践性教材,适合初学者和有一定编程基础的开发者。Swift是苹果公司推出的一种现代化、高性能的编程语言,特别适合iOS、macOS、watchOS以及...
根据提供的标题、描述、标签及部分内容,我们可以了解到这是一个关于使用Swift 3.0开发新浪微博客户端项目的视频教程系列。下面将对各个章节所涉及的关键知识点进行详细的解析。 ### Swift 3.0新浪微博项目视频 ##...
Swift是一种由Apple开发的编程语言,它以其语法简洁、安全高效而受到开发者喜爱。在iOS、macOS等Apple平台的应用开发中,Swift扮演着至关重要的角色。标题提到的"swift-使用方便简洁高效功能强大一行代码即可实现...
此外,Swift中的控制流语句如if条件判断、switch选择结构、for-in循环以及while循环也是构建计算器逻辑的关键部分。例如,为了实现除法操作,我们需要检查除数是否为零,这可以通过if语句来实现: ```swift func ...
本文将深入探讨Swift中C风格for循环的工作原理、效率差异以及在Swift 3.0及后续版本中对于这种循环方式的改变。 首先,我们来理解一下什么是C风格的for循环。在Swift中,C风格的for循环通常指的是类似于以下形式的...
《Swift Apprentice V3.0》是一本专注于Swift编程语言的学习指南,特别针对Swift 4版本进行了详尽的讲解。这个资源包含三种格式:PDF、EPUB,为学习者提供了多种阅读选择,无论是在电脑上还是移动设备上都能方便地...
#### 关于Swift 3.0更新 Swift 3.0标志着自Swift开源以来的第一个重大版本更新。它不仅带来了许多新功能,而且还引入了一些重要的语言变更,使其与之前的Swift 2.2和Swift 2.3版本不完全兼容。这一版本的发布意味着...