//可选项,一般也叫可选类型,它允许将值设置为nil。
var nameValue:String = "Jack"
//nameValue = nil// error: 'nil' cannot be assigned to type 'String'
//在类型名称后面加个?来定义一个可选项。
var nickValue:String? = "Mary"
nickValue = nil
var ageValue:Int?//不设置可选项默认没有值、设置可选项默认值nil
//事例
var array = [10,15,20,25]
func indexFunc(_ item:Int) -> Int?{
if item < 0 || item > array.count {
return nil
}
return array[item]
}
/*
print(indexFunc(0))//Optional(10)
print(indexFunc(-1))//nil
print(indexFunc(10))//nil
*/
强制解包。
//可选项是对其他类型的一种包装。如果从可选项中取出被包装的数据,需要使用感叹号(!)进行强制解包。
var heightValue:Int? = 10
var height = heightValue! + 20
print(height)//30
//如果对值为nil可选项进行强制解包、会报错。
var widthValue:Float?
//错误演示 error: Unexpectedly found nil while unwrapping an Optional value
//var width =