Swift常见数据类型
| 值类型(value type) | 枚举(enum) | Optional |
| 结构体(struct) | Bool、Int、Float、Double、Character | |
| String、Array、Dictionary、Set | ||
| 引用类型(reference type) | 类(class) | 类(class) |

枚举类型
有时候将枚举的成员值跟其它类型的值关联存储在一起,会非常有用 (原始值不占用枚举变量的存储空间)
隐士原始值(Implicitly)如果枚举原始值类型是Int、String,Swift会自动分类原始值

Swift流程控制
- Swift中流程控制if、while、for后面的()可以省略,条件后面的大括号不可以省略
- 从Swift3开始,去除了自增、自减运算符
- repeat-while相当于C语言中的do-while
if-else

while

for
Swift的for循环使用是与区间类型结合的。Swift中区间类型

for循环使用

如果for循环体中未使用到变量i,可以使用_省略

区间运算符用在数组上for循环遍历

可选项(Optional)
可选项,一般也称之为可选类型,它允许将值设置为nil
可选类型的常量或者变量默认值为nil
可选项是对其它类型的一层包装,可以将它理解为一个盒子
- 如果为nil,那么它就是个空盒子
- 如果不为nil,那么盒子里装的是:被包装类型的数据
如果要从可选项中取出被包装的数据,需要使用!进行强制解包
如果对值为nil的可选项进行强制解包,将会产生运行时错误

判断可选项是否包含值

可选项绑定(Optional Binding)
可选项绑定:如果包含值就自动解包,把值赋值给临时的常量或者变量,并返回true,否者返回发false

使用if语句可选绑定实现登录逻辑

guard语句

当使用guard语句进行可选项绑定时,绑定的常量、变量也能在外层作用域中使用

空合并运算符 ??
a ?? b
- a是可选项
- b是可选项或者不是可选项
- a跟b的存储类型必须相同
如果a不为nil 就返回a (如果b此时为不是可选项,返回a时会自动解包)
如果a为nil,就返回b
typealias
typealias用来给类型起别名

Swift标准库的定义:Void就是空元祖()
