成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

聽故事學Swift系列 - 小明與紅包(optionals - 可選類型)

移動開發
雖然都是基于Cocoa和CocoaTouch框架,雖然都屬于動態運行模式的靜態類型語言,但是Swift和OC兩門語言之間的區別還是蠻大的. 所以,希望通過這么一個系列,以講故事的方式,將Swift中的和OC區別較大的語法,概念,和生活中的點點滴滴相互映射,讓知識融入生活,用生活融化知識.

[[143647]]

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

故事

熊孩子小明要過7歲生日了,一大早就堵在家門口,向來給他過生日的親戚們要紅包,而且表示,不給紅包就搗亂.
小明姑姑是個標準的月光族,在小明過生日的前一天才想起來,自己好像又月光了...怎么辦?賭一把~ 不管銀行卡里能取出來多少錢,都裝進紅包里塞給小明,嗯,空紅包就空紅包好了,反正姑姑盡力了,小明你要知道,姑姑其實是愛你的.

知識點

  1. optional類型的數據就像是一個紅包,不管字符串還是結構體,都可以包進紅包里.

  2. 紅包的狀態只有兩種,一種是沒包東西,一種是包了東西
    optional類型的數據值也只有兩種,一種是nil,一種是非nil
    注意:nil在OC中,代表一個空指針,而在Swift中,只能用來表示Optional類型數據的狀態 -- 紅包是空的
  3. "不管銀行卡里能取出來多少錢,都裝進紅包里塞給小明"這一句是想說明Optional的常見使用情形:當不確定一個對象有沒有值的時候,可以使用Optional類型進行包裝 - 如字符串的.toInt()方法(字符串可能根本就不能轉換成int類型的數據)

故事

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

知識點

  1. 拆紅包是指Optional類型數據的強制解析,解析方法為:在optional數據后面使用"!"
  2. 強制解析之前,一定要確保Optional類型的數據非nil哦!否則程序也會像小明一樣,崩潰掉的

故事

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

知識點

這個故事講的就是Optional類型數據的可選綁定.
通過可選綁定(optional binding)可以判斷可選類型是否包含值,如果包含就把值賦給一個臨時常量或者變量。可選綁定可以用在if和while語句中來對可選類型的值進行判斷并把值賦給一個常量或者變量。

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

故事

小明長大了,知道讓親戚們當著面把紅包打開的行為不太好,也不在意有一些無良親戚給空紅包的行為了.他學會了裝糊涂(怎么突然變化這么大-_-|||).雖然在拆到空紅包的時候還是會崩潰.
小明知道了誰值得信賴,紅包里一定有票票,即使當面拆開也不會讓自己崩潰;誰不值得信賴 -- 不值得信賴的人的紅包,就不拆了吧.
這就是成長啊.

知識點

隱式解析可選類型
有時候在程序架構中,第一次被賦值之后,可以確定一個可選類型總會有值。在這種情況下,每次都要判斷和解析可選值是非常低效的,因為可以確定它總會有值。
這種類型的可選狀態被定義為隱式解析可選類型(implicitly unwrapped optionals)。把想要用作可選的類型的后面的問號(String?)改成感嘆號(String!)來聲明一個隱式解析可選類型。
當可選類型被第一次賦值之后就可以確定之后一直有值的時候,隱式解析可選類型非常有用。隱式解析可選類型主要被用在 Swift 中類的構造過程中
一個隱式解析可選類型其實就是一個普通的可選類型,但是可以被當做非可選類型來使用,并不需要每次都使用解析來獲取可選值。

尾聲

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

責任編輯:倪明 來源: 簡書
相關推薦

2015-09-02 10:33:54

紅包類型optionals

2024-01-16 07:33:02

SwiftTypeScript可選綁定

2015-08-05 09:45:25

IOS故事多線程

2009-09-02 17:51:36

.NET委托

2024-01-17 06:23:35

SwiftTypeScript定義函數

2018-07-03 15:20:36

Promise函數借錢

2010-08-04 15:22:42

VMwareNFS

2014-06-06 09:13:28

SwiftSwift編程

2022-08-14 06:59:01

TS 類型編程索引類型

2011-11-03 16:32:57

Dart

2017-01-06 15:06:08

京東

2013-10-09 09:33:10

開源開源軟件

2009-12-14 18:32:42

Linux桌面

2009-06-02 14:28:14

品牌故事APC

2022-03-31 09:01:10

Swift類型擦除類型安全性

2022-05-11 09:01:54

Swift類型系統幻象類型

2024-01-18 00:16:07

2014-09-24 11:15:05

Objective-CSwift

2017-01-11 12:57:16

2022-06-13 09:02:06

Swift類型占位符
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩精品在线看 | 一区二区三区在线 | 午夜无码国产理论在线 | a在线免费观看视频 | 日日射影院 | 九九热精品视频 | 亚洲国产高清在线观看 | 毛片网络| 无码一区二区三区视频 | 亚洲欧美日韩中文字幕一区二区三区 | 麻豆精品国产91久久久久久 | 欧美亚洲综合久久 | 精品中文在线 | 一级毛片网 | 久久久久久成人 | 欧美福利影院 | 国产一区二区三区色淫影院 | 久久之精品 | 久久亚| 91免费在线| 资源首页二三区 | 亚洲视频免费在线观看 | 美女天天操| 欧美黄在线观看 | 日韩精品中文字幕一区二区三区 | 欧美成人免费在线 | 亚洲精品一区二区在线观看 | 国产精品久久7777777 | 黄色一级电影免费观看 | 99久久久久 | 在线中文视频 | 国产精品视频一区二区三区, | 国产精品入口麻豆www | 亚洲精品乱码久久久久久9色 | 国产特黄一级 | 亚洲在线观看视频 | 日韩精品一区二区三区在线播放 | 国产视频不卡一区 | 国产精品亚洲综合 | 精品久久香蕉国产线看观看亚洲 | 91在线看网站 |