Swift3.0基本語法01

Swift3.0之基本知識

常量&變量

  • 在Swift中規(guī)定:在定義一個標(biāo)識符時必須明確說明該標(biāo)識符是一個常量還是變量
  • 使用let來定義常量,定義之后不可以修改
  • 使用var來定義變量蟋软,定義之后可以修改

變量的基本使用

    import UIKit
    let a : Int = 10
    // 錯誤寫法,當(dāng)一個標(biāo)識符定義為常量時是不可以修改的
    // a = 20
    var b : Int = 20
    //因?yàn)閎定義為變量,因此是可以修改的
    b = 30

常量和變量的使用注意:

    import UIKit
    /*
     常量使用注意:
        1> 優(yōu)先使用常量
        2> 常量的本質(zhì)
     */
    // 1.注意一:在開發(fā)中l(wèi)et/var在選擇時優(yōu)先使用常量斋荞,防止不小被修改掉(let)
    // 如果一個標(biāo)識符不需要修改嫂冻,但是聲明稱了變量葵萎,那么編譯器會報警告
    // 2.常量的本質(zhì):
    // 含義:指向的內(nèi)存地址不可以修改导犹,但是可以通過內(nèi)存地址唱凯,找到對應(yīng)的對象,之后修改對象內(nèi)部的屬性
    /*
     OC中創(chuàng)建對象:
        UIView *view = [[UIView alloc] init];
        view = [[UIView alloc] init];
     Swift中創(chuàng)建對象:
        var view : UIView = UIView()
     */
    /*
     變量的做法
        var view : UIView = UIView()
        view = UIView()
     */
    // 創(chuàng)建常量View
    let view = UIView()
    // view = UIView() 錯誤做法
    view.alpha = 0.5
    // Swift中創(chuàng)建結(jié)構(gòu)體:結(jié)構(gòu)體類型()
    view.frame = CGRect(x: 0, y: 0, width: 100, height: 100)
    // Swift中調(diào)用方法谎痢,統(tǒng)一使用點(diǎn)語法
    view.backgroundColor = UIColor.red

創(chuàng)建對象補(bǔ)充

  • 創(chuàng)建UIView對象磕昼,并且在UIView中添加UIButton
    import UIKit
    // 1.創(chuàng)建UIView對象
    // OC : [[UIView alloc] initWithFrame:CGRect]
    let viewRect = CGRect(x: 0, y: 0, width: 100, height: 100)
    let view : UIView = UIView(frame: viewRect)
    // 2.設(shè)置UIView的屬性
    view.backgroundColor = UIColor.orange
    // 3.創(chuàng)建UIButton
    let btn : UIButton = UIButton(type: .custom)
    // 4.設(shè)置UIButton的屬性
    btn.frame = CGRect(x: 0, y: 0, width: 50, height: 50)
    btn.backgroundColor = UIColor.purple
    /*
     Swift中枚舉類型:
     1> 如果可以根據(jù)上下文推導(dǎo)出類型可以直接.具體的類型
     2> 如果根據(jù)上下文推導(dǎo)不出具體的類型,則需要:類型.具體的類型
     */
    btn.setTitle("按鈕", for: .normal)
    btn.setTitleColor(UIColor.white, for: .normal)
    // 5.將btn添加到UIView中
    view.addSubview(btn)

Swift中數(shù)據(jù)類型

Swift類型的介紹

  • Swift中的數(shù)據(jù)類型也有:整型/浮點(diǎn)型/對象類型/結(jié)構(gòu)體類型等等
    • 先了解整型和浮點(diǎn)型
    • 整型
      • 有符號
        • Int8 : 有符號8位整型
        • Int16 : 有符號16位整型
        • Int32 : 有符號32位整型
        • Int64 : 有符號64位整型
        • Int : 和平臺相關(guān)(默認(rèn),相當(dāng)于OC的NSInteger)
      • 無符號
        • UInt8 : 無符號8位整型
        • UInt16 : 無符號16位整型
        • UInt32 : 無符號32位整型
        • UInt64 : 無符號64位整型
        • UInt : 和平臺相關(guān)(常用,相當(dāng)于OC的NSUInteger)(默認(rèn))
    • 浮點(diǎn)型
      • Float : 32位浮點(diǎn)型
      • Double : 64浮點(diǎn)型(默認(rèn))
    // 定義一個Int類型的變量m,并且賦值為10
    var m : Int = 10
    // 定義一個Double類型的常量n,并且賦值為3.14
    let n : Double = 3.14

Swift中的類型推導(dǎo)

  • Swift是強(qiáng)類型的語言
    • Swift中任何一個標(biāo)識符都有明確的類型
    • 注意:
      • 如果定義一個標(biāo)識符時有直接進(jìn)行賦值,那么標(biāo)識符后面的類型可以省略.
      • 因?yàn)镾wift有類型推導(dǎo),會自動根據(jù)后面的賦值來決定前面的標(biāo)識符的數(shù)據(jù)類型
      • 可以通過option+鼠標(biāo)左鍵來查看變量的數(shù)據(jù)類型
    import UIKit
    let m = 20
    let n = 30.5
    // 錯誤寫法 :
    // Swift中沒有隱式轉(zhuǎn)化节猿,不會自動將一個Int類型轉(zhuǎn)成Double類型票从,因此不同類型之間不能進(jìn)行運(yùn)算
    // let result = m + n
    // 正確做法
    // 1> 將Int類型轉(zhuǎn)成Double : Double(標(biāo)識符)
    // 2> 將Double類型轉(zhuǎn)成Int : Int(標(biāo)識符)
    let result1 = Double(m) + n
    let result2 = m + Int(n)

邏輯分支

一. 分支的介紹

  • 分支即if/switch/三目運(yùn)算符等判斷語句
  • 通過分支語句可以控制程序的執(zhí)行流程

二. if分支語句

  • 和OC中if語句有一定的區(qū)別
    • 判斷句可以不加()
    • 在Swift的判斷句中必須有明確的真假
      • 不再有非0即真
      • 必須有明確的Bool值
      • Bool有兩個取值:false/true
    // 演練一:
    let a = 10
    // 錯誤寫法:
    //if a {
    //    print("a")
    //}
    // 正確寫法
    if a > 9 {
        print(a)
    }
    // 演練二:
    let score = 87
    if score < 60 {
        print("不及格")
    } else if score <= 70 {
        print("及格")
    } else if score <= 80 {
        print("良好")
    } else if score <= 90 {
        print("優(yōu)秀")
    } else {
        print("完美")
    }

三.guard的使用

  • guard是Swift2.0新增的語法
    • 它與if語句非常類似,它設(shè)計的目的是提高程序的可讀性
    • guard語句必須帶有else語句沐批,它的語法如下:
      • 當(dāng)條件表達(dá)式為true時候跳過else語句中的內(nèi)容纫骑,執(zhí)行語句組內(nèi)容
      • 條件表達(dá)式為false時候執(zhí)行else語句中的內(nèi)容,跳轉(zhuǎn)語句一般是return九孩、break先馆、continue和throw
    guard 條件表達(dá)式 else {
        // 條換語句
        break
    }
    語句組
    //---例子---
        var age = 18
    func online(age : Int) -> Void {
        guard age >= 18 else {
            print("回家去")
            return
        }
        print("可以上網(wǎng)")
    }
    online(age)

四.switch分支

switch的介紹
  • Switch作為選擇結(jié)構(gòu)中必不可少的語句也被加入到了Swift中
    • 只要有過編程經(jīng)驗(yàn)的人對Switch語句都不會感到陌生
    • 但蘋果對Switch進(jìn)行了大大的增強(qiáng),使其擁有其他語言中沒有的特性
switch的簡單使用
  • 基本用法和OC用法一致
    • 不同之處:
      • switch后可以不跟()
      • case后可以不跟break(默認(rèn)會有break)
    • 例子:
    let sex = 0
    switch sex {
    case 0 :
        print("男")
    case 1 :
        print("女")
    default :
        print("其他")
    }
  • 簡單使用補(bǔ)充:
    • 一個case判斷中,可以判斷多個值
    • 多個值以,隔開
    let sex = 0
    switch sex {
    case 0, 1:
        print("正常人")
    default:
        print("其他")
    }
  • 簡單使用補(bǔ)充:
    • 如果希望出現(xiàn)之前的case穿透,則可以使用關(guān)鍵字fallthrough
    let sex = 0
    switch sex {
    case 0:
        fallthrough
    case 1:
        print("正常人")
    default:
        print("其他")
    }
switch支持區(qū)間判斷
  • 什么是區(qū)間?
    • 通常我們指的是數(shù)字區(qū)間:010,100200
      swift中的區(qū)間常見有兩種
    • 半開半閉區(qū)間:0..<10 表示:0~9,不包括10
      閉區(qū)間:0…10 表示:0~10
    let score = 88
    switch score {
    case 0..<60:
        print("不及格")
    case 60..<80:
        print("幾個")
    case 80..<90:
        print("良好")
    case 90..<100:
        print("優(yōu)秀")
    default:
        print("滿分")
    }

循環(huán)使用

循環(huán)的介紹

  • 在開發(fā)中經(jīng)常會需要循環(huán)
  • 常見的循環(huán)有:for/while/do while.
  • 這里我們只介紹for/while,因?yàn)閒or/while最常見

for循環(huán)的寫法

  • 區(qū)間for循環(huán)
    for i in 0..<10 {
        print(i)
    }
    for i in 0...10 {
        print(i)
    }
    //特殊寫法:如果在for循環(huán)中不需要用到下標(biāo)i
    for _ in 0..<10 {
    print("hello")
    }

Swift中遍歷方法for in 和 forEach的區(qū)別

while和do while循環(huán)

  • while循環(huán)
    • while的判斷句必須有正確的真假,沒有非0即真
    • while后面的()可以省略
    var a = 0
    while a < 10 {
        a++
    }
    
    //--do while循環(huán):使用repeat關(guān)鍵字來代替了do--
        let b = 0
    repeat {
        print(b)
        b++
    } while b < 20

更多關(guān)于Swift

Swift基本語法02--基本數(shù)據(jù)類型

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末躺彬,一起剝皮案震驚了整個濱河市煤墙,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌宪拥,老刑警劉巖仿野,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異她君,居然都是意外死亡脚作,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進(jìn)店門缔刹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來球涛,“玉大人,你說我怎么就攤上這事校镐∫诒猓” “怎么了?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵鸟廓,是天一觀的道長从祝。 經(jīng)常有香客問我,道長引谜,這世上最難降的妖魔是什么牍陌? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮员咽,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘链嘀。我一直安慰自己档玻,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布所踊。 她就那樣靜靜地躺著,像睡著了一般稽坤。 火紅的嫁衣襯著肌膚如雪阅爽。 梳的紋絲不亂的頭發(fā)上楼雹,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天贮缅,我揣著相機(jī)與錄音,去河邊找鬼块茁。 笑死桂肌,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的昌跌。 我是一名探鬼主播照雁,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼饺蚊,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了裕坊?” 一聲冷哼從身側(cè)響起燕酷,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎饵蒂,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體彼乌,經(jīng)...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡慰照,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年毒租,在試婚紗的時候發(fā)現(xiàn)自己被綠了漓骚。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,852評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡噩斟,死狀恐怖剃允,靈堂內(nèi)的尸體忽然破棺而出齐鲤,到底是詐尸還是另有隱情,我是刑警寧澤牡肉,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布统锤,位于F島的核電站炭庙,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏逾雄。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一银锻、第九天 我趴在偏房一處隱蔽的房頂上張望徒仓。 院中可真熱鬧,春花似錦、人聲如沸症见。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽帖池。三九已至吭净,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間囚巴,已是汗流浹背友扰。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留秽浇,地道東北人甚负。 一個月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像击喂,于是被迫代替她去往敵國和親碰辅。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,851評論 2 361

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