概述
Swift是一门类型安全的语言。Swift的可选类型会进行编译检查,防止一些常见的运行时错误。在 Swift 中,当我们声明一个变量的时候,默认情况下是 非可选类型 (non-optional) ,也就是说,你必须指定一个不为 nil 的值。如果你硬是要把一个非可选类型的变量设为 nil ,那么编译器就会报错。
Swift中的nil,必须用可选类型接收。你可以给可选类型赋值为nil来表示他没有值,如果你声明一个可选常量或者变量但是没有赋值,它们会自动被设置为 nil ,也就是说可选类型可以为nil也可以有值,非可选类型不能为nil必须有值。Swift 的 nil 和 Objective-C 中的 nil 并不一样。在 Objective-C 中,nil 是一个指向不存在对象的指针。在 Swift 中,nil 不是指针——它是一个确定的值,用来表示值缺失。任何类型的可选状态都可以被设置为 nil,不只是对象类型。
https://leroyli.github.io/2018/07/07/Swift-Optional/