swift基本語法01

<1>.常量與變量

 1. let 常量 -> 一經(jīng)賦值不允許再次修改
 2. var 變量 -> 賦值后還可以再次修改
 3. 在swift里面如果不指定類型有自動(dòng)類型推到 , 查看類型 -> option + 鼠標(biāo)左鍵
 4. 建議 先使用let,在需要修改的時(shí)候使用var


func demo() {
    let  a = 10
    print(a)
    
    var b = 5
    print(b)
    b = 10
    print(b)
    
    
    let c: Int = 2
    let d: Double = 1.2
    let result = c + Int(d)
    print(result)
}

<2>.可選類型
1. 可選類型定義的常量或者變量可能有值,也可能為nil
2. 可選類型定義的變量或者常量不能直接參與計(jì)算 (進(jìn)行解包才能計(jì)算)
3. 表現(xiàn)形式 類型后面加上?, 比如 Int?
4. '!'表示給可選類型的變量或者常量進(jìn)行強(qiáng)制解包, 要向系統(tǒng)保證我的值的一定在,有值

func demo() {
    
    let a: Int? = 4
    let b: Int = 3
    //  1.向可選類型的值為nil進(jìn)行強(qiáng)制解包程序會(huì)崩潰,報(bào)出以下錯(cuò)誤
    //  fatal error: unexpectedly found nil while unwrapping an Optional value
    if a != nil {
        let result = a! + b
        print(result)
    }
    
    //  2.使用空合并運(yùn)算符 ??
    //  使用 ?? 判斷可選類型a 是否有值,如果有值使用該值進(jìn)行計(jì)算, 沒有值(nil)使用?? 后面提供的默認(rèn)值0
    let result = (a ?? 0) + b
    print(result)
    
    //  3.變量可選類型 -> 變量的可選類型如果沒有設(shè)置值,那么默認(rèn)值為nil
    var c: Int?
    print(c)
    
    
    //  4.常量的可選類型沒有默認(rèn)值,可以設(shè)置默認(rèn)值nil
    let d: Int? = nil
    print(d)
    
    //  5.只有可選類型才能接收nil值
    //let num: String = nil
}

<3>控制語句

func demo() {
    // (1).if 條件判斷

    /*
       1. 可以省略小括號(hào)'()'
       2. '{}'只有一行代碼也不能省略
       3.  沒有非0即真的概念 只能判斷bool類型的值,只能有true/false
     */
    let num = 1
    if num > 0 {
        print(num)
    }
    
    
    //  (2).判斷可選類型

    /*
        1. if let 與 guard let 語意相反
        2. guard let比if let少一層嵌套, 可讀性會(huì)更強(qiáng)
     */
    //  提供可選類型的參數(shù)
    let a: Int? = 5

    //  提供了一個(gè)if let判斷
    //  if let 判斷可選類型是否有值,有值把值給value 然后執(zhí)行if let語句

    if let value = a {
        //  代碼執(zhí)行到此,value一定有值,就不是可選類型了
        print(value)
    }

    //  確保value一定有值,如果沒有值執(zhí)行else語句
    guard let value = a else {
        print("a 為 nil")
        return
    }
    //  執(zhí)行到此value一定有值
    print(value)
    
    
    
    //  (3).可選類型條件的判斷
    let url:URL? = URL(string: "http://www.baidu.com")
    if url != nil {
        if url?.host == "www.baidu.com" {
            print("right")
        }
    }

    //  if let 條件判斷 2.0 的時(shí)候使用where關(guān)鍵字添加條件, 3.0 改成','
    if let u = url,u.host == "www.baidu.com"{
        print("ok")
    }
    
    
    
    //  (4).擴(kuò)展 多個(gè)可選類型多個(gè)條件的判斷
    let name: String? = "puppy"
    let age: Int? = 1

    //  2.0 可以省略第二個(gè)let 或者 var, 3.0 必須指定類型
    //  ',' 分割多個(gè)可選類型判斷
    if let n = name, let a = age {
        print(n,a)
    }

    //   條件之間可以 '&&', '||'
    if let n = name, let a = age,n == "puppy" && a == 1 {
        print("身份正確")
    }
    
    
    //  (5).switch 判斷
    /*
     1. 可以省略break
     2. 可以判斷任意類型
     3. 省略小括號(hào)'()'
     4. case語句里面定義變量或者常量不需要指定作用域
     5. case可以判斷多個(gè)參數(shù)
     6. case后面可以加where條件
     7. case后面必須要有值可執(zhí)行語句 ,  可以使用break
     8. 擴(kuò)展 想要貫穿 'fallthrough' 前提后面的case 不能定義變量或者常量
     */

    let hobby: String = "跑步"
    let km: Int = 10 //一次跑步里程
    switch hobby {
    case "引體向上" :
        print("強(qiáng)壯的虎頭肌")
    case "仰臥起做" :
        print("完美八塊")
    case "跑步" where km > 5:
        print("性感的大長腿")
    default:
        print("運(yùn)動(dòng)小白")
        
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末然眼,一起剝皮案震驚了整個(gè)濱河市严肪,隨后出現(xiàn)的幾起案子贯钩,更是在濱河造成了極大的恐慌,老刑警劉巖炮捧,帶你破解...
    沈念sama閱讀 219,490評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件肃拜,死亡現(xiàn)場離奇詭異,居然都是意外死亡焰坪,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門聘惦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來某饰,“玉大人,你說我怎么就攤上這事÷斗Γ” “怎么了碧浊?”我有些...
    開封第一講書人閱讀 165,830評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長瘟仿。 經(jīng)常有香客問我箱锐,道長,這世上最難降的妖魔是什么劳较? 我笑而不...
    開封第一講書人閱讀 58,957評(píng)論 1 295
  • 正文 為了忘掉前任驹止,我火速辦了婚禮,結(jié)果婚禮上观蜗,老公的妹妹穿的比我還像新娘臊恋。我一直安慰自己,他們只是感情好墓捻,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評(píng)論 6 393
  • 文/花漫 我一把揭開白布抖仅。 她就那樣靜靜地躺著,像睡著了一般砖第。 火紅的嫁衣襯著肌膚如雪撤卢。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,754評(píng)論 1 307
  • 那天梧兼,我揣著相機(jī)與錄音放吩,去河邊找鬼。 笑死羽杰,一個(gè)胖子當(dāng)著我的面吹牛渡紫,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播考赛,決...
    沈念sama閱讀 40,464評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼惕澎,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了颜骤?” 一聲冷哼從身側(cè)響起唧喉,我...
    開封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎复哆,沒想到半個(gè)月后欣喧,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體腌零,經(jīng)...
    沈念sama閱讀 45,847評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡梯找,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了益涧。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片锈锤。...
    茶點(diǎn)故事閱讀 40,137評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出久免,到底是詐尸還是另有隱情浅辙,我是刑警寧澤,帶...
    沈念sama閱讀 35,819評(píng)論 5 346
  • 正文 年R本政府宣布阎姥,位于F島的核電站记舆,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏呼巴。R本人自食惡果不足惜泽腮,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望衣赶。 院中可真熱鬧诊赊,春花似錦、人聲如沸府瞄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽遵馆。三九已至鲸郊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間团搞,已是汗流浹背严望。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留逻恐,地道東北人像吻。 一個(gè)月前我還...
    沈念sama閱讀 48,409評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像复隆,于是被迫代替她去往敵國和親拨匆。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評(píng)論 2 355

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

  • Swift 基本語法 大體來說,Swift我們需要掌握下面一些常用的基本語法:我會(huì)一步一步整理出來, 今天暫時(shí)整理...
    DXSmile閱讀 422評(píng)論 0 0
  • Swift 是一門開發(fā) iOS, macOS, watchOS 和 tvOS 應(yīng)用的新語言挽拂。然而惭每,如果你有 C 或...
    XLsn0w閱讀 922評(píng)論 2 1
  • 關(guān)于 Swift 重要這個(gè)文檔所包含的準(zhǔn)備信息, 是關(guān)于開發(fā)的 API 和技術(shù)的。這個(gè)信息可能會(huì)改變, 根據(jù)這個(gè)文...
    無灃閱讀 4,312評(píng)論 1 27
  • 在靈劍山亏栈,秋林中台腥,一名穿著綠色服裝的男孩,正神情堅(jiān)硬的拳頭打在樹上绒北,很是平靜黎侈,拳上亮著微光,樹上有常年被拳頭...
    樂家軍閱讀 100評(píng)論 0 0
  • 本文意在說明Android NDK 在實(shí)現(xiàn)C++ RTTI時(shí)的相關(guān)數(shù)據(jù)結(jié)構(gòu)闷游,并從匯編角度分析其內(nèi)存布局峻汉,以幫助理解...
    f9dd77add98e閱讀 2,584評(píng)論 0 2