OC與Swift的主要區別

來源:互聯網
上載者:User

標籤:轉換   聲明   val   行修改   類型轉換   資料   調用   swift的   定義變數   

swift與OC的主要區別就是文法區別,其他大抵相同.

區別1: swift中使用let定義常量,var定義變數.常量一經賦值,不可以進行修改,變數賦值後可更改.

         swift能夠根據右邊的代碼,推倒出該變數的準確類型.

 

在實際開發中 使用常量多還是使用變數多?

使用常量,更加安全,不能夠被修改,在需要對該對象進行修改的時候 在修改為var修飾區別.

 

 

2: swift對資料要求異常嚴格,不會做隱式轉換;

     不同類型之間不能夠直接計算需要手動轉換類型,調用建構函式傳遞參數進行類型轉換

 

區別3: swift中有一大特色,就是optional可選項,定義變數是,如果指定可選項,表示該變數可以有一個指定類型的值,也可以是nil;

 

  1. 聲明: var a: Int?  
  2. ‘?‘表示可選類型或者可選解包,

    在調用可選類型的對象的屬性或者方法的時候會使用可選解包

  3. ‘!‘ 表示強行解包 
  4. 擷取可選類型的不為空白的值
  5. 強行解包有風險,需要考慮是否安全

??‘ 合并空選項

 

  1. 需要使用 () 提高優先順序
  2. 如果有值就直接使用,如果沒有就使用 ?? 後面設定的預設值
  3. 判斷字串 或者基本資料

區別4: swift中建構函式可以重載,就是init的括弧內寫一堆參數,OC中代替方式initWithXXX....

 

閉包

 

  • 字串
    • String 是結構體,更加輕量級,效率更高,支援遍曆,可以和NSString 無縫的轉換 as
    • NSString 整合自NSObject 是對象
    • 字串的合并
      • 使用 +
      • 使用String()傳參數執行個體化字串
      • \() 逸出字元串
      • 格式化字串 String(format:
    • 字串的截取
  • 集合
    • let 聲明的是不可變的集合,var 聲明的是可變的集合
    • 數組
      • [XXX]表示數群組類型, XXX是某一個類
      • [XXX]() 就能夠執行個體化空數組
      • [元素1,元素2,....]
    • 字典
      • [key1 : value1, key2 : value2,...]
      • [String : Any] 最常用的字典類型
  • 閉包的基本格式
    • 沒有參數沒有傳回值 () -> ()
    • 有參數沒有傳回值 (Int, Int) -> ()
    • 有參數有傳回值的 (Int, Int) -> Int
      • 尾隨閉包
        • 當函數的最後一個參數是閉包的時候,函數的參數的 ‘()‘ 可提前關閉,如果函數只有閉包這一個參數, ‘()‘ 可以省略

OC與Swift的主要區別

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.