1. Swift 的初始化

在 Swift 语言中, 我们使用 var 来定义变量, 但是 Swift 并不会自动给一个变量赋初始值. 当没有对值进行初始化的时候, 编译器就会报错

2. Optional 类型与问号 ? 和感叹号 !

Optional 类型实际上是一个 enum 枚举类型, 该枚举类型包括了 NoneSome 两个元素

nil 对应枚举值 Optional.None

当我们做如下定义 :

var a : Int?

a = 6

print(a)    //结果 : Optional(6)

此时, a 不属于 Int 类型, 而是属于 Optional 类型

对于一个 Optional 类型, 如果它未被初始化, 则初始值为 nil

在 a 的右侧添加了一个前面没有空格的问号 ? 表示对 a 变量进行拆包, 尝试获得 Optional 包中的 Int

当将问号 ? 改成感叹号 !

var a : Int!

a = 6

print(a)    //结果 : 6

当使用感叹号的时候, 相当于在告诉编译器 : 我确定 a 一定不是 nil