標籤:轉換 聲明 val 行修改 類型轉換 資料 調用 swift的 定義變數
swift與OC的主要區別就是文法區別,其他大抵相同.
區別1: swift中使用let定義常量,var定義變數.常量一經賦值,不可以進行修改,變數賦值後可更改.
swift能夠根據右邊的代碼,推倒出該變數的準確類型.
在實際開發中 使用常量多還是使用變數多?
使用常量,更加安全,不能夠被修改,在需要對該對象進行修改的時候 在修改為var修飾區別.
2: swift對資料要求異常嚴格,不會做隱式轉換;
不同類型之間不能夠直接計算需要手動轉換類型,調用建構函式傳遞參數進行類型轉換
區別3: swift中有一大特色,就是optional可選項,定義變數是,如果指定可選項,表示該變數可以有一個指定類型的值,也可以是nil;
- 聲明: var a: Int?
- ‘?‘表示可選類型或者可選解包,
在調用可選類型的對象的屬性或者方法的時候會使用可選解包
- ‘!‘ 表示強行解包
- 擷取可選類型的不為空白的值
- 強行解包有風險,需要考慮是否安全
‘??‘ 合并空選項
- 需要使用 () 提高優先順序
- 如果有值就直接使用,如果沒有就使用 ?? 後面設定的預設值
- 判斷字串 或者基本資料
區別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的主要區別