Swift中的可選變量

Swift中的可選變量

optional翻譯成中文是”可選擇的”, 在Swift里它標識一個變量可能為nil.
作為一個曾經搞過C++/C#/Java的人, 理解了十幾遍, 才基本理解這個概念. 只能說, 蘋果你太牛逼了.

普通變量

普通變量呢, 必須有初始值.
好有一比, 作為一個富二代, 爹很有錢, 生下來就有車了, 必須得有車!

var 座駕:汽車=汽車("奧迪")

普通變量用起來是這樣的:

座駕.發(fā)動()
座駕.加速()
座駕.甩尾()
座駕.剎車()

可選變量

大部分人投胎技術不行, 不是生下來就有車, 但是萬一咱將來有車了呢? 所以剛開始沒車的咋辦呢? 蘋果幫你想到了, 你可以聲明一個可選變量, 初始如果你不設置的話, 初始值默認為空.

var 座駕:汽車? 

然后你買了車

座駕=汽車("邁拓"")

以后使用這個變量的時候, 就得這樣使用:

座駕!.發(fā)動()
座駕!.加速()
座駕!.甩尾()
座駕!.剎車()

我擦, 我的車為啥和人家的不一樣! 后面都有一個"!" 每次都用"!"來取實際值, 是不是看上去很傻.
別擔心, 蘋果幫你想到了. 怎么能一眼被人看出屌絲的本質呢?
所以可以這樣聲明一個可選變量:

var 座駕:汽車!

然后買了車:

座駕=汽車("邁拓"")

以后使用這個變量的時候, 就可以這樣使用了:

座駕.發(fā)動()
座駕.加速()
座駕.甩尾()
座駕.剎車()

是不是和富二代家的車看起來一樣了! 但是, 你的車還是奧拓...
而且, 如果你不設置值, 會報nil異常的

可選變量的好處

可選變量的唯一好處是可以處理nil的狀態(tài). 蘋果應該是趨向于讓你使用普通變量的.

可選鏈

class 天窗{
    var 寬度=20公分
}
class 汽車{
    天窗:天窗?
}
var 座駕:汽車?
let 天窗寬度=座駕?.天窗?.寬度

天窗寬度也許是nil,
也許是20公分, 如果是20公分, 那就是貨真價實的20公分, 不是可選值哦

判斷語句的語法糖

使用下面的方式, 可以免去nil判斷.

if let 我的座駕=座駕{
    座駕.啟動()
} 

看到沒, 不用!了, "我的座駕" 是正常變量, 不是可選變量.

顯示轉換

var  座駕:汽車?
座駕=汽車("奧拓)
座駕?.甩尾()
let 真座駕無雙=座駕!
真座駕無雙.甩尾()

轉換之后, 變成正常變量, 不是可選變量.

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容