swift的nil和OC有些不同,OC只有对象能够用nil,swift基础类型(整形,浮点)没有值时也是nil,当初始化的时候,swift能够没有初始值的,产生了可选值Optional。swift
定义可选值很容易,只需在类型的后面加一个?就行。例如:var value:Int? 一个Optional值和一个非Optional值的区别,Optional值未经初始化虽然为nil,但普通变量连nil的没有。 var value:Int? print(value) //nil var value:Int print(value) //直接报错 提取可选类型的值(强制解析) Optional值不能被直接使用,由于可选值有两种状态,分别是有值和没值,因此咱们须要告诉编译器是否有值 强制解析可选类型的值,只需在变量后加!就能够。 var value:Float? var value2:Float = value! print(value2) 注意:若是value没有值,会报运行时错误。 当我不知道 Optional是否有值,该怎么操做? 若是值不为nil,再执行后面的代码。 var value:Int? = 10 if let tmpValue = value { print(tmpValue) // var result :Int = value! // // var result2 :Int = value! // // print(value) // // print(result) } 当你不肯定可选值是否有值是,尽可能使用if来判断一下 let url = NSURL(string: "www.baidu.com") if let tmpUrl = url { NSURLRequest(URL: tmpUrl) } 可选项:??,他能够对nil进行快速判断,??后面的值是参与计算的 var num:Int? let result :Int = num ?? 0 print(result)