自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

紅包(optionals - 可選類型)

移動(dòng)開發(fā)
小明姑姑是個(gè)標(biāo)準(zhǔn)的月光族,在小明過生日的前一天才想起來,自己好像又月光了...怎么辦?賭一把~ 不管銀行卡里能取出來多少錢,都裝進(jìn)紅包里塞給小明,嗯,空紅包就空紅包好了,反正姑姑盡力了,小明你要知道,姑姑其實(shí)是愛你的.

[[147754]]

雖然都是基于Cocoa和CocoaTouch框架,雖然都屬于動(dòng)態(tài)運(yùn)行模式的靜態(tài)類型語言,但是Swift和OC兩門語言之間的區(qū)別還是蠻大的。

所以,希望通過這么一個(gè)系列,以講故事的方式,將Swift中的和OC區(qū)別較大的語法,概念,和生活中的點(diǎn)點(diǎn)滴滴相互映射,讓知識(shí)融入生活,用生活融化知識(shí)。

哎呀我去,這B裝的,我自己都臉紅了╮(╯﹏╰)╭

熊孩子小明&他的月光族姑姑

故事一:

熊孩子小明要過7歲生日了,一大早就堵在家門口,向來給他過生日的親戚們要紅包,而且表示,不給紅包就搗亂.

小明姑姑是個(gè)標(biāo)準(zhǔn)的月光族,在小明過生日的前一天才想起來,自己好像又月光了...怎么辦?賭一把~ 不管銀行卡里能取出來多少錢,都裝進(jìn)紅包里塞給小明,嗯,空紅包就空紅包好了,反正姑姑盡力了,小明你要知道,姑姑其實(shí)是愛你的.

知識(shí)點(diǎn)

a.optional類型的數(shù)據(jù)就像是一個(gè)紅包,不管字符串還是結(jié)構(gòu)體,都可以包進(jìn)紅包里.

b.紅包的狀態(tài)只有兩種,一種是沒包東西,一種是包了東西

optional類型的數(shù)據(jù)值也只有兩種,一種是nil,一種是非nil

注意:nil在OC中,代表一個(gè)空指針,而在Swift中,只能用來表示Optional類型數(shù)據(jù)的狀態(tài) -- 紅包是空的

c."不管銀行卡里能取出來多少錢,都裝進(jìn)紅包里塞給小明"這一句是想說明Optional的常見使用情形:當(dāng)不確定一個(gè)對(duì)象有沒有值的時(shí)候,可以使用Optional類型進(jìn)行包裝 - 如字符串的.toInt()方法(字符串可能根本就不能轉(zhuǎn)換成int類型的數(shù)據(jù))

故事二

吃完蛋糕送走大家,小明興高采烈地開始拆紅包.哇!這個(gè)紅包里包了好多毛爺爺!哇!這個(gè)紅包里居然包了美金!哇!這個(gè)紅包居然是空的!!!小明哭了,哭的好傷心,整個(gè)人都崩潰了.

知識(shí)點(diǎn)

a.拆紅包是指Optional類型數(shù)據(jù)的強(qiáng)制解析,解析方法為:在optional數(shù)據(jù)后面使用"!"

b.強(qiáng)制解析之前,一定要確保Optional類型的數(shù)據(jù)非nil哦!否則程序也會(huì)像小明一樣,崩潰掉的

故事三

轉(zhuǎn)眼間小明要過8歲生日了.回想起7歲時(shí)收到的空紅包,小明早早準(zhǔn)備了一個(gè)透明塑料袋,收紅包的時(shí)候,要讓大家當(dāng)面把紅包里面包的東西,先放進(jìn)塑料袋里,然后才能進(jìn)屋吃飯.如果沒有東西裝進(jìn)塑料袋里,小明就撒潑打滾吐口水(好一個(gè)熊孩子-_-|||)

知識(shí)點(diǎn)

這個(gè)故事講的就是Optional類型數(shù)據(jù)的可選綁定.

通過可選綁定(optional binding)可以判斷可選類型是否包含值,如果包含就把值賦給一個(gè)臨時(shí)常量或者變量。可選綁定可以用在if和while語句中來對(duì)可選類型的值進(jìn)行判斷并把值賦給一個(gè)常量或者變量。

  1. if let 塑料袋里的錢 = 紅包里的錢() { 
  2. 小明.高高興興親一個(gè)方法 
  3. else { 
  4. 小明.撒潑打滾吐口水方法 

故事四

小明長大了,知道讓親戚們當(dāng)著面把紅包打開的行為不太好,也不在意有一些無良親戚給空紅包的行為了.他學(xué)會(huì)了裝糊涂(怎么突然變化這么大-_-|||).雖然在拆到空紅包的時(shí)候還是會(huì)崩潰。

小明知道了誰值得信賴,紅包里一定有票票,即使當(dāng)面拆開也不會(huì)讓自己崩潰;誰不值得信賴 -- 不值得信賴的人的紅包,就不拆了吧。

這就是成長啊。

知識(shí)點(diǎn)

隱式解析可選類型

有時(shí)候在程序架構(gòu)中,第一次被賦值之后,可以確定一個(gè)可選類型總會(huì)有值。在這種情況下,每次都要判斷和解析可選值是非常低效的,因?yàn)榭梢源_定它總會(huì)有值。

這種類型的可選狀態(tài)被定義為隱式解析可選類型(implicitly unwrapped optionals)。把想要用作可選的類型的后面的問號(hào)(String?)改成感嘆號(hào)(String!)來聲明一個(gè)隱式解析可選類型。

當(dāng)可選類型被第一次賦值之后就可以確定之后一直有值的時(shí)候,隱式解析可選類型非常有用。隱式解析可選類型主要被用在 Swift 中類的構(gòu)造過程中

一個(gè)隱式解析可選類型其實(shí)就是一個(gè)普通的可選類型,但是可以被當(dāng)做非可選類型來使用,并不需要每次都使用解析來獲取可選值。

尾聲

嗯,小明的故事結(jié)束了!以后一定不要給自己的小輩包空紅包哦!否則他長大了,就不會(huì)隱式解析你了哦!哈哈

責(zé)任編輯:chenqingxiang 來源: Azen的簡(jiǎn)書
相關(guān)推薦

2015-08-03 17:03:29

swiftoptionals可選型

2024-01-16 07:33:02

SwiftTypeScript可選綁定

2022-08-14 06:59:01

TS 類型編程索引類型

2011-11-03 16:32:57

Dart

2015-02-26 14:45:42

微信支付寶紅包

2024-08-19 11:31:41

2017-01-20 11:14:37

紅包

2015-02-27 15:19:36

微信紅包算法

2024-01-17 06:23:35

SwiftTypeScript定義函數(shù)

2021-02-09 07:35:16

手機(jī)QQ紅包APP

2015-11-12 09:39:28

微信紅包實(shí)現(xiàn)

2012-03-27 14:23:38

Windows 8IE10

2010-01-26 14:53:12

2018-02-05 20:50:38

馬云紅包春晚

2019-02-03 10:37:53

騰訊視頻紅包微信

2015-02-26 13:54:01

微信支付寶紅包

2022-02-21 10:34:41

微信紅包

2016-05-27 17:58:19

APP互聯(lián)網(wǎng)

2009-02-19 13:28:08

遠(yuǎn)程通訊技術(shù)及原理Java

2019-10-23 15:53:16

JavaScript可選鏈對(duì)象
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)