swift 學(xué)習(xí)筆記之可選類型

可選類型(可以有值, 也可以沒有值)

  • 在OC中我們可以給一個對象類型變量賦值為nil或者一個對象, 而在Swift中如果想給一個變量賦值為nil那么必須明確指定為可選類型才可以, 也就是說普通變量是不能賦值為nil的
    • 格式: 數(shù)據(jù)類型?
let num1: Int? = 10
// 以后但凡看到init后面跟上一個?, 就代表初始化方法返回的值是可選的

注意:

  • 可選類型是不能直接使用的, 如果想使用一個可選類型的值, 必須對可選類型進行解包 !
let str = "http://www.520it.com/"
let url = NSURL(string: str)
print(url!)
// 注意: Swift不推薦我們隨便使用強制解包
let sum = num1! + num2
if let temp = num1
{
    let sum = temp + num2
}
  • 解包的含義: 告訴系統(tǒng)可選類型的變量, 一定有值, 如果可選類型的值沒有值, 我們又進行了強制解包, 那么就會報錯

  • 可選綁定

    • 專門用于解決強制解包的弊端
    • 注意: 開發(fā)中如果想使用一個可選類型的值, 也不一定一定用可選綁定, 因為如果可選類型的值較多, 而又都屬于同一個邏輯, 那么一不小心就會形成if嵌套
let url2 = NSURL(string: str)
print(url2)
// 取出url2的值賦值給temp, 如果取到了值那么就可以進入if后面的大括號, 如果沒有取到值(nil), 就不會進入if后面的大括號
if let abc = url2
{
    print(abc)
}
let v1: Int? = 10
let v2: Int? = 20
let v3: Int? = 30
if let n1 = v1
{
    if let n2 = v2
    {
        if let n3 = v3
        {
            let sum = n1 + n2 + n3
        }
    }
}
  • guard
    • 作用: 類似可選綁定
    • 只有條件為假(flase), 才會執(zhí)行else后面大括號中的代碼
    • 格式
guard 條件表達式 else
{
    // 條件為假就會執(zhí)行
}
func test()
{
    guard let m1 = v1 else
    {
        print("沒有值")
        return
    }
    guard let m2 = v2 else
    {
        print("沒有值")
        return
    }
    guard let m3 = v3 else
    {
        print("沒有值")
        return
    }
    
    let sum = m1 + m2 + m3
}
test()
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末霎匈,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子冕杠,更是在濱河造成了極大的恐慌憔儿,老刑警劉巖碾褂,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件脑蠕,死亡現(xiàn)場離奇詭異酌泰,居然都是意外死亡媒佣,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進店門陵刹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來默伍,“玉大人,你說我怎么就攤上這事衰琐∫埠” “怎么了?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵羡宙,是天一觀的道長狸剃。 經(jīng)常有香客問我,道長狗热,這世上最難降的妖魔是什么钞馁? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任虑省,我火速辦了婚禮,結(jié)果婚禮上僧凰,老公的妹妹穿的比我還像新娘探颈。我一直安慰自己,他們只是感情好训措,可當(dāng)我...
    茶點故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布伪节。 她就那樣靜靜地躺著,像睡著了一般绩鸣。 火紅的嫁衣襯著肌膚如雪怀大。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天呀闻,我揣著相機與錄音化借,去河邊找鬼。 笑死总珠,一個胖子當(dāng)著我的面吹牛屏鳍,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播局服,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼钓瞭,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了淫奔?” 一聲冷哼從身側(cè)響起山涡,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎唆迁,沒想到半個月后鸭丛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡唐责,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年鳞溉,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鼠哥。...
    茶點故事閱讀 40,424評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡熟菲,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出朴恳,到底是詐尸還是另有隱情抄罕,我是刑警寧澤,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布于颖,位于F島的核電站呆贿,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏森渐。R本人自食惡果不足惜做入,卻給世界環(huán)境...
    茶點故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一冒晰、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧母蛛,春花似錦翩剪、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蚪缀。三九已至秫逝,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間询枚,已是汗流浹背违帆。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留金蜀,地道東北人刷后。 一個月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像渊抄,于是被迫代替她去往敵國和親尝胆。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,435評論 2 359

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