當前位置:成語大全網 - 書法字典 - 在斯威夫特!然後呢。的區別和用途

在斯威夫特!然後呢。的區別和用途

我相信當妳學習和使用Swift的時候,妳壹定會!然後呢。這兩個符號到底有什麽瘋狂糾結的?天知道什麽時候用什麽時候用?

下面就來說說吧!然後呢。區別以及如何使用!

?還有!事實上,它們是Swift語言中可選操作的語法糖。

有哪些可選類型?在Swift中可以聲明壹個沒有初始值的屬性,Swift中引入了可選類型來解決這個問題。它是通過添加壹個?接線員。

比如:var名稱:String?

Optional實際上是壹個enum,有兩種類型:None和Some。其實所謂的nil是可選的。None,非零值是可選的。Some,然後原始值會被Some(T)包裝,這就是為什麽在使用Optional時需要解包(從enum中取出原始值)。下面是enum可選的定義。

既然如此,那麽var name: String呢?這個語法怎麽理解?

壹旦聲明為可選,如果沒有顯式賦值,將會有壹個默認值nil。If可用於判斷可選值是否有值:

如何使用可選值?文件中還提到,使用可選值時,需要在具體操作前加壹個,比如調用方法、屬性、下標索引等。如果值為零,則為,即可選。無,將跳過並且不執行以下操作;如果有值,它是可選的。有的,而且可能會解包,然後會對解包後的值執行下面的操作,保證這個操作的安全性。

?的使用場景:

1.聲明可選的值變量

2.在操作中使用可選值來判斷它是否能響應下面的操作。

3.用作?向下轉換(向下轉換)

上述可選值需要解包得到原值,然後才能操作。怎麽拆包?

有兩種打開包裝的方法:

事實上,還有另壹種叫做隱式解包選項。比如將在viewDidLoad中初始化的變量可以直接定義為var str :String!意思是每次對該類型的值進行操作,都會在操作前自動加壹!打開包裝,然後執行以下操作。當然,如果值為nil,則會出現錯誤崩潰。

舉個很簡單的栗子:

!的使用場景:

1.強制解包可選值。

2.聲明隱式解包變量,這些變量通常用於類中的屬性。

其實!然後呢。問題很坑,不要把它看做只是兩個符號,因為只要有壹個不小心,妳就會發現項目運行的時候會莫名其妙的崩潰。關鍵是調試模式不太方便定位錯誤類型。自己整理可選類型的相關用法。壹種是記錄鞏固所學,但希望對大家有幫助。本文可能有錯誤和不足之處,但希望提出來,我會及時改正。