《Advanced Swift》第一章 介紹:讀書筆記 一、介紹

一、介紹

        此書在Swift 2.0發佈的時候,就開始編寫,此時看起來有些早,因爲很多語言特性尚不成熟。目前,此書已經更新到Swift 5.0。大家剛接觸Swift的時候,能夠在Swift中看到自己所熟悉的C、C++、OC、Java等語言中的影子。隨着深入的瞭解,也會發現,自己所熟悉的一些內容,在Swift中沒有了、以一種不太接受的方式出現等。本書,致力於講解“這個要怎麼做”、“爲什麼在Swit中會是這個樣子”。通過閱讀本書,可以從瞭解Swift的基礎知識過度到了解許多進階特性。
        加油吧,少年!

1.1 本書所面向的讀者

        本書面向具有一定編程基礎的人員,不適合零基礎的人員,最好對Swift有基本的瞭解。

1.2 主題

        本書是分不同的主題來組織的,每個章節都集中在不同的主題。
        同時本書也涉及到Swift給大家的音箱:

  • 覆蓋高級語言特性到低級語言特性
  • 支持多種編程範式
  • 十分靈活
  • Swift是比較安全的

1.3 術語

  • 值 (value) 是不變的,永久的,它從不會改變,如1、2
  • 1, true 和 [1,2,3] 都是值,這些是字面量 (literal)
  • 可以改變的量就是變量,如:var x = 1
  • let x = 1,就是一個常量
  • 結構體 (struct) 和枚舉 (enum) 是值類型 (value type)
  • 類是引用類型
  • 函數重載 (overloading),它是指 爲不同的類型多次寫同一個函數的行爲
  • 子類型和方法重寫 (overriding) 是實現多態 (polymorphic) 特性的一種手段
  • 類或者協議上的方法可能是動態派發 (dynamically dispatched) 的(在 Swift 中,這種動態特性要麼由 vtable 來完成,要麼通過 selector 和 objc_msgSend 來完成,前者的處理方式和 Java 或是 C++ 中類似,而後者只針對那些用 @objc 修飾的類和協議上的方法)
  • 自由函數和那些在結構體上調用的方法是靜態派發 (statically dispatched) 的
  • 定義在類或者協議中的函數就是方法 (method),它們有一個隱式的 self 參數
  • 有時候我們會 把那些不是方法的函數叫做自由函數 (free function)
  • 函數可以通過 func 關鍵字來定義,也可以通過 { } 這樣的簡短的閉包表達式 (closure expression) 來定義,有時簡稱爲閉包

1.4 Swift風格指南

  • 對於命名,在使用時能清晰表意是最重要,參見Swift API涉及準則
  • 類型使用大寫字母開頭,函數、變量和枚舉成員使用小寫字母開頭,兩者都使用駝峯式 命名法
  • 使用類型推斷。省略掉顯而易見的類型會有助於提高可讀性
  • 如果存在歧義或者在進行定義契約 (比如 func 就需要顯式地指定返回類型) 的時候不要 使用類型推斷。
  • 優先選擇結構體,只在確實需要使用到類特有的特性或者是引用語義時才使用類
  • 除非你的設計就是希望某個類被繼承使用,否則都應該將它們標記爲 final。如果你允許 這個類被模塊內部繼承,但不允許外部的用戶進行子類化,那麼標記這個類爲 public, 而不是 open
  • 除非一個閉包後面立即跟隨有左括號,否則都應該使用尾隨閉包 (trailing closure) 的語 法
  • 使用 guard 來提早退出方法
  • 避免對可選值進行強制解包和隱式強制解包
  • 試着去使用 map 和 reduce,但這不是強制的
  • 除非你確實需要,否則不要使用 self.

1.5 修訂歷史

略。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章