素材:A Swift Tourhtml
推薦下載Playground:Download Playgroundswift
objc 本身較爲熟悉,想熟悉下風頭正勁的 swift。就先從官方的入門手冊開始擼。數組
每一小節,我都摘錄或總結3個對本身三觀衝擊最大的【知識點】,以方便之後溫習。總結不保證絕對正確,僅供交流之用。O(∩_∩)O哈哈~數據結構
Simple Values
- var 表示變量
- let 聲明常量
- [] 用於聲明數組和字符串
Control Flow
- if 或 while 等的判斷條件中必須使用布爾值.
- 判斷條件中的可能爲 nil 值,統一使用 let varName = maybeNil 語法.
- for in 循環,可同時應用於數組,字典或特定範圍(Range).
Functions and Closures
- 形參新增了 "標籤" 語義,有效豐富了函數重載的語義
- "標籤" 語義,不適合用於用做函數參數或函數返回值的函數的聲明裏.
- 閉包中,區分參數和函數體的,是經過 in 關鍵字來分割的.
Objects and Classes
- swift 默認不會使用零值在聲明時初始化變量.
- let 常量,只能初始化一次,但能夠不在聲明時當即初始化.
- 子類初始化順序是: 子類未初始化屬性的初始化 --> 調用父類 init 方法 --> 其餘額外操做
Enumerations and Structures
- struct 是複製傳值,即便只是簡單的 var a = b, a 和 b 也是兩個獨立的對象.
- enum 不是必須和某個類型值的關聯.
- enum 能夠使用某種模式來做爲動態匹配的 case.
Protocols and Extensions
- 增長新數據結構通用語法: [class|struct|enum|extension|protocol] 名稱 : [class|protocol] {...}
- Int 等基礎類型,其實現是一個 Struct
- enum 和 extension 不能夠持有屬性,可是能夠用 get 方法來模擬一個屬性
Error Handling
- try 和有 throws 聲明的函數配對使用.
- try? 可選操做,有異常拋出則返回nil; try! 強制操做,有異常拋出,則拋出沒法 do-catch 的致命異常.
- defer block 在函數異常退出時,也能夠正常執行.
Generics
- 函數,方法,類,枚舉和結構體支持泛型的泛型的方式,就是在聲明時的名稱後,加 <泛型1, 泛型2, ...>
- 使用泛型時,要保證能在編譯期推導出其類型.
- 能夠使用 where 指定對泛型類型自己的一些要求.