本文首发于我的个人博客
if-else
- if后面的条件可以省略小括号
- 条件后面的大括号不可以省略
下面的代码是可以的
1 | let score = 70 |
- if后面的条件只能是bool类型
例如下面是不可以的
1 | if score { |
while
先看如下代码
1 | var num = 5 |
- repeat-while 相当于C语言中的 do-while
- 上面代码中没有用num–,是因为从Swift3开始,去掉了自增(++)、自减(–)运算符
for
闭区间运算符: a…b,代表着: a <= 取值 <= b
例如
1 | let persons = ["zhangsan","lisi","wanger","mazi"] |
- 我们也可以用range来表示区间,例如
1 | let persons = ["zhangsan","lisi","wanger","mazi"] |
- 我们也可以用变量来表示区间,例如
1 | let persons = ["zhangsan","lisi","wanger","mazi"] |
- 我们也可以用变量和数值共同使用来表示区间,例如
1 | let persons = ["zhangsan","lisi","wanger","mazi"] |
半开区间运算符:a..<b 表示 a <= 取值 < b
例如
1 | let persons = ["zhangsan","lisi","wanger","mazi"] |
- 区间运算符用在数组上
例如
1 | let nums = [1,2,3,4] |
- 单侧区间
1 | let nums = [1,2,3,4] |
或者
1 | let nums = [1,2,3,4] |
区间类型
如下三种
- let range1: ClosedRange
= 1…3 - let range2: Range
= 1..<3 - let range3: PartialRangeThrough
= …5
字符、字符串也可以使用区间运算符,但默认不能使用在for-in中
例如
1 | 这样写是可以的 |
- \0 到 “~” 包括了所有的要用到的ASCII字符
例如我们要判断一个字符是否是ASCII字符
1 | let characterRange: ClosedRange<Character> = "\0"..."~" |
带间隔的区间值
用到了 stride
看代码
1 | let all = 100 |
switch
- case、default 后面不能写大括号{}
- 默认可以不写break,并不会贯穿到后面的条件
例如
1 | var res = 1 |
关键字 fallthrough
如果我们想让其贯穿下去,就是用 fallthrough 这个关键字
例如
1 | var res = 1 |
switch中支持 字符串,字符类型
例如
1 | 字符串 |
区间、元组匹配
- 可以用下划线_ 忽略某个值
- 可以对区间,和元组进行匹配
1 | let count = 8 |
和
1 | let point = (1,0) |
值绑定
1 | let point2 = (1,0) |
where
1 | var numbers = [1,2,3,4,5,] |
标签语句
标签语句用于执行的时候,跳转到标签的位置
例如
1 | outer: for i in 1...4{ |
如果加了标签
1 | outer: for i in 1...4{ |
参考资料: