type
status
date
slug
summary
tags
category
icon
password
example-row
example-row
Swift提供了
for-in
循环、while
循环,if
、guard
和 switch
作为条件字段,continue
、break
、fallthrough
、return
、throw
作为控制转移字段。for-in
遍历数组
遍历字典
遍历数字范围
不需要区间序列内每一项的值,你可以使用下划线(
_
)替代变量名while循环
while
循环会一直运行一段语句直到条件变成 false
。while
循环
每次在循环开始时计算条件是否符合;
repeat-while
循环
每次在循环结束时计算条件是否符合,相当于java里的
do-while
。条件语句
if
只有该条件为
true
时,才执行相关代码。guard
和
if
一样,都是条件为 true
时,才执行相关代码。不同的是,if
的条件为 true
时,执行的相关代码在条件后面的闭包里。而guard
的条件为true
时,执行的相关代码在guard
代码段后面。输出结果:
switch
switch
语句会尝试把某个值与若干个模式(pattern)进行匹配。根据第一个匹配成功的模式,switch
语句会执行对应的代码。当有可能的情况较多时,通常用 switch
语句替换 if
语句。与 C 和 Objective-C 中的
switch
语句不同,在 Swift 中,当匹配的 case 分支中的代码执行完毕后,程序会终止 switch
语句,而不会继续执行下一个 case 分支。这也就是说,不需要在 case 分支中显式地使用 break
语句。每一个 case 分支都必须包含至少一条语句。复合条件
多个相同处理的case,可以合并成一个复合条件。
区间条件
case 分支的模式可以是一个值的区间。
元组条件
可以使用元组在同一个
switch
语句中测试多个值。元组中的元素可以是值,也可以是区间。另外,使用下划线(_
)来匹配所有可能的值。Swift 允许多个 case 匹配同一个值。实际上,在这个例子中,四个
case
都可以匹配点 (0, 0) 。但是,如果存在多个匹配,那么只会执行第一个被匹配到的 case 分支。值绑定
case 分支允许将匹配的值声明为临时常量或变量,并且在 case 分支体内使用 —— 这种行为被称为值绑定(value binding),因为匹配的值在 case 分支体内,与临时的常量或变量绑定。
这个
switch
语句不包含默认分支。这是因为最后一个 case ——case let(x, y)
声明了一个可以匹配余下所有值的元组。这使得 switch
语句已经完备了,因此不需要再书写默认分支。where关键字
case 分支的模式可以使用
where
语句来判断额外的条件。控制转移语句
continue
语句告诉一个循环体立刻停止本次循环,重新开始下次循环,并且不会退出循环体。
break
语句会立刻结束整个控制流的执行。break
可以在switch
或循环语句中使用,用来提前结束switch
或循环语句。
fallthrough
用于贯穿switch语句的case条件,使代码继续连接到下一个 case 中的代码。类似C语言的switch语句中,case不写break的效果。
return
用于退出当前的函数,并返回一个值。
throw
用于退出当前的函数,并返回一个异常。
带标签的语句
如果上述的
break
语句没有使用 gameLoop
标签,那么它将会中断 switch
语句而不是 while
循环。使用 gameLoop
标签清晰的表明了 break
想要中断的是哪个代码块。检测 API 可用性
在
if
或 guard
语句中使用 可用性条件(availability condition)
去有条件的执行一段代码,来在运行时判断调用的 API 是否可用。除了
#available
以外, Swift 还支持通过不可用性条件来进行不可用性检查。- 作者:黄x黄
- 链接:https://hxhowl.site/article/swift009
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章