圆括号
在条件判断以及循环中,大多数圆括号都可以省略掉
var x=2
var y=3
if x>3{
//
}
switch x {
case 1:
y=1
default:
y=2
}
while x>3
{
}
print(y)
if语句
Swift中的if语句和C/C++一样,只不过多了两个比较运算符
- ===,计算两个实例是否指向同一个引用
- !==,计算两个实例是否不指向同一个引用
switch语句
-
Swift中的switch语句和C/C++很像,不过每个分支都要求有代码,不然会报错
var x=2 switch x { case 1: //做出响应 print("Item1") case 2: //做出响应 print("Item2") default: //没有匹配时的默认操作 print("Default Item") }
-
在C/C++中,分支中的代码执行完后,会自动跳转到下一个分支继续检查,但是在Swift中恰恰相反,分支中的代码执行完后会跳出switch代码块,想要分支执行完后跳转到下一个分支,可以在分支代码最后加上fallthrough
var x=2 switch x { case 1: print("Item1") case 2: print("Item2") //继续向下执行 fallthrough default: print("Default Item") }
-
switch分支可以同时匹配多个值,用逗号分隔
var x=2 switch x { case 1: print("Item1") case 2,3,4: print("Item2 Item3 Item4") fallthrough default: print("Default Item") }
-
switch也支持使用valueX...valueY的形式匹配一个闭区间中的值
var x=6 switch x { case 1: print("Item1") case 2...10: print("Item2到Item10") fallthrough default: print("Default Item") }
-
在case语句后面可以声明变量/常量的方式进行值绑定,如下代码所示,当x不为1,也不为2的时候,会将x的值赋给常量y,然后输出Item is 6,并且default分支永远也不会被执行到
var x=6 switch x { case 1: print("Item1") case 2: print("Item2") case let y: print("Item is \(y)") default: print("Default Item") }
-
上面的代码看上去没什么用,但是如果加上where语句就变的有用起来了,where能让你做一些额外检查,只有满足条件才会匹配这个分支并进行值绑定
var x=6 switch x { case 1: print("Item1") case 2: print("Item2") case let y where x>1 && x<7: print("Item is \(y)") default: print("Default Item") }
-
元组是两个或多个值的组合,该组合是一个有序列表,可以用索引方式访问元组内元素
let error=(404,"Not Found","xy") //404 print(error.0) //Not Found print(error.1) //xy print(error.2)
-
也可以通过给元组内的元素命名后以名字访问
let error=(code:404,errorStr:"Not Found",owner:"xy") //404 print(error.code) //Not Found print(error.errorStr) //xy print(error.owner)
-
switch语句也支持元组的形式匹配,其中_为通配符
var error=(code:404,errorStr:"Not Found",owner:"xy") switch error{ case (404,_,"xy"): print("404 error") default: print("unknow error") }
-
if-case语句,有时候条件判断只有一种情况,但是又想利用switch的便捷性(例如区间判断),又不想写多余的default语句,那么可以使用if-case语句
var x=6 if case 2...10=x,x<7{ print("x is in 2..10,and x<7") }
网友评论