使用可选类型(optionals)来处理 值可能缺失的情况:可选类型表示:
.有值,等于x
或者
.没有值
let possibleNumber = "123"
let convertedNumber = (int)possibleNumber
convertedNumber 被推测为int? 或 类型为 "optional int"
上面的代码是将String 转化成Int
你可以给变量赋值nil,来表示他没有值:
var serverResponseCode : Int? = 404
serverResponseCode = nil
注意:nil不能用于非可选的常量和变量。如果你的代码中有常量或者变量需要处理值缺失的情况,请把他们声明成对应的可选类型
如果你声明一个可选的常量或变量,但是没有赋值,他们会被自动设置为nil
var sureAnswer:String?
//sureAnswer 被自动设置为nil
if语句及强制解析
你可以使用if语句和nil比较来判断一个可选值,是否包含值。你可以使用“相等”(==)或“不等(!=)”来执行比较
如果可选类型有值,它将不等于nil
if converNumber != nil {
print("convertedNumber contains some integer integer value")
}
当你确定可选类型确实有包含值之后,你可以在可选的名字后加“感叹号(!)”来获取值,这个感叹号表示“我知道这个可选值有值。请使用它” 这被称为可选值的强制解析(forced unwrapping);
注意:
使用“感叹号(!)”来获取一个不存在的可选值会导致运行时错误。使用!来强制解析前,一定要确认可选值有一个非nil的值