【讀書筆記】A Swift Tour

素材: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 指定對泛型類型自己的一些要求.
相關文章
相關標籤/搜索