1. 程式人生 > >unexpectedly found nil while unwrapping an Optional value的解釋 && Swift中Optional

unexpectedly found nil while unwrapping an Optional value的解釋 && Swift中Optional

首先來說一些Swift中的Optional,譯為可選項,他是一個列舉型別,有以下兩個值

這裡寫圖片描述
1. none:表示沒有值
2. some:某一類值

原始可選項的定義:

let x: Optional = 10

簡單的定義:

//'?'用來定義 y 是一個可選的 Int 型別,可能沒有值,也可能是一個整數
ley y: Int? = 20

此時列印 x 和 y

print(x)
print(y)
//控制檯顯示如下
Optional(10)
Optional(20)

此時我們列印二者求和,編譯器給出警告

這裡寫圖片描述

根據編譯器的提示,修改如下

print(x! + y!)
//列印結果為:30,且沒有Optional關鍵字

此時我們回頭把x的重新定義,其他程式碼不變,執行工程

let x: Int? = nil

此時程式崩潰到了print位置這裡寫圖片描述

同時控制檯列印,意思是在解包的時候發現了nil值

“fatal error: unexpectedly found nil while unwrapping an Optional value”

Swift中,’!’:強行解包,從可選值中強行獲取對應的非空值,如果真的遇見nil,程式直接崩潰.就是說不同型別之間的值不能直接運算!如果沒有值是nil(Optional列舉中的none),nil不是任何資料型別,不能參與計算