swift-可選值

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)
相關文章
相關標籤/搜索