【讀書筆記】A Swift Tour 原

素材:A Swift Tour

推薦下載Playground:Download Playground

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 指定對泛型類型本身的一些要求.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章