★ iOS高級(jí):Swift入門精講③ 02 swift編程-11 隱式解包

前言:

本篇僅為視頻學(xué)習(xí)筆記

隱式解包 (Implicitly Unwrapped Optional)

? 在某些情況下,可選項(xiàng)一旦被設(shè)定值之后镇防,就會(huì)一直擁有值
? 在某些情況下方援,可以去掉檢查黎休,也不必每次訪問(wèn)的時(shí)候都進(jìn)行解包,因?yàn)樗艽_定每次訪問(wèn)的時(shí)候都有值
? 可以在類型后面加個(gè)陶耍!定義一個(gè)隱式解包的可選項(xiàng)


案例-1

先來(lái)看一下以前的代碼奋蔚,如下:



為什么報(bào)錯(cuò)呢?報(bào)錯(cuò)是因?yàn)閚um1是一個(gè)可選類型烈钞,既然是一個(gè)可選類型也是一個(gè)盒子泊碑,盒子里面裝著一個(gè)10。現(xiàn)在要賦值給num2中的Int毯欣,相當(dāng)于要把盒子里面的東西取出來(lái)賦值給num2中的Int馒过,所以你要解包,怎么解包呢酗钞?在可選類型的右邊加一個(gè)腹忽!,代表進(jìn)行強(qiáng)制解包砚作。將里面的10拿出來(lái)窘奏。如下:不報(bào)錯(cuò)


但是,如果如let num1: Int ! = 10葫录,在Int后面加一個(gè)嘆號(hào)??如下



運(yùn)行一下着裹,成功。

相當(dāng)于米同,如果你定義的這個(gè)可選類型的話骇扇,是用感嘆號(hào)摔竿!,如let num1: Int!少孝,那么這種東西叫做隱式解包的可選項(xiàng)继低。

無(wú)論你在Int后面加一個(gè)!或者?都意味著它是一個(gè)可選類型稍走,都是一個(gè)盒子郁季。所以,完全可以如num1!后面加一個(gè)钱磅!強(qiáng)制解包。但是由于似枕,我定義num1的時(shí)候盖淡,如let num1: Int! = 10,Int后面寫的凿歼!褪迟,所以它是可以自動(dòng)解包的。這就是隱式解包法答憔。


案例-2

如上味赃,由于num1是可選類型,我們?nèi)匀豢梢赃M(jìn)行if判斷虐拓,以及可選類型綁定。


案例-3

如上代碼,如果你的可選類型為nil值甘畅,那么你解包的話搂橙,它肯定會(huì)報(bào)錯(cuò)。由于num1是隱式解包的可選項(xiàng)态兴,所以你賦值給Int它會(huì)偷偷的解包

所以狠持,什么時(shí)候適合用這個(gè)是隱式解包的可選項(xiàng)呢?說(shuō)的很清楚瞻润,如果你能確保你的這個(gè)可選項(xiàng)一直有值的話喘垂,就建議大家使用這個(gè)。

用這個(gè)绍撞,也有風(fēng)險(xiǎn)正勒,可能num1 = nil報(bào)錯(cuò),開發(fā)者楚午,盡量少用這種昭齐。

字符串插值

   var age: Int? = 10
   print("My age is \(age)")

? 可選項(xiàng)在字符串插值或者直接打印時(shí),編譯器會(huì)發(fā)出警告

? 至少有三種方法消除警告

第一種 強(qiáng)制解包

 print("My age is \(age!)") // My age is 10

第二種 調(diào)用這個(gè)字符串的初始化方法

 print("My age is \(String(describing: age))") // My age is Optional(10)

第三種 使用 ??

print("My age is \(age ?? 0)") // My age is 10
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末矾柜,一起剝皮案震驚了整個(gè)濱河市阱驾,隨后出現(xiàn)的幾起案子就谜,更是在濱河造成了極大的恐慌,老刑警劉巖里覆,帶你破解...
    沈念sama閱讀 206,839評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件丧荐,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡喧枷,警方通過(guò)查閱死者的電腦和手機(jī)虹统,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)隧甚,“玉大人车荔,你說(shuō)我怎么就攤上這事∑莅猓” “怎么了忧便?”我有些...
    開封第一講書人閱讀 153,116評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)帽借。 經(jīng)常有香客問(wèn)我珠增,道長(zhǎng),這世上最難降的妖魔是什么砍艾? 我笑而不...
    開封第一講書人閱讀 55,371評(píng)論 1 279
  • 正文 為了忘掉前任蒂教,我火速辦了婚禮,結(jié)果婚禮上脆荷,老公的妹妹穿的比我還像新娘凝垛。我一直安慰自己,他們只是感情好蜓谋,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評(píng)論 5 374
  • 文/花漫 我一把揭開白布苔严。 她就那樣靜靜地躺著,像睡著了一般孤澎。 火紅的嫁衣襯著肌膚如雪届氢。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,111評(píng)論 1 285
  • 那天覆旭,我揣著相機(jī)與錄音退子,去河邊找鬼。 笑死型将,一個(gè)胖子當(dāng)著我的面吹牛寂祥,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播七兜,決...
    沈念sama閱讀 38,416評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼丸凭,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起惜犀,我...
    開封第一講書人閱讀 37,053評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤铛碑,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后虽界,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體汽烦,經(jīng)...
    沈念sama閱讀 43,558評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評(píng)論 2 325
  • 正文 我和宋清朗相戀三年莉御,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了撇吞。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,117評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡礁叔,死狀恐怖牍颈,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情琅关,我是刑警寧澤颂砸,帶...
    沈念sama閱讀 33,756評(píng)論 4 324
  • 正文 年R本政府宣布,位于F島的核電站死姚,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏勤篮。R本人自食惡果不足惜都毒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望碰缔。 院中可真熱鬧账劲,春花似錦、人聲如沸金抡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)梗肝。三九已至榛瓮,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間巫击,已是汗流浹背禀晓。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留坝锰,地道東北人粹懒。 一個(gè)月前我還...
    沈念sama閱讀 45,578評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像顷级,于是被迫代替她去往敵國(guó)和親凫乖。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容