可选项
可选项,一般也叫可选类型,它允许将值设置为nil,在类型名称后面加个问号? 来定义一个可选项。
//变量定义
var name:String? = "Jack"
name = nil
var age: Int? // 默认就是nil
age = 10
age = nil
var array = [1, 15, 40, 29]
//函数返回值
func get(_ index: Int) -> Int? {
if index < 0 || index >= array.count {
return nil
}
return array[index]
}
强制解包
可选项是对其他类型的一层包装,可以把它理解为一个盒子
如果为nil,那么它就是一个空盒子
如果不为nil,那么盒子里装的是:被包类型的数据,需要使用感叹号 ! 进行强制解包。
如果对值为nil的可选项进行强制解包就会出现运行时错误。
var age:Int?
age = 10
age = nil
var ageInt:Int = age!
ageInt += 10