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] 最常用的字典類型
