原创 面向協議編程:iOS開發專家的最好工具 一、概述 二、OOP存在的問題 三、使用POP對業務領域建模 四、擴展現有類型和層次結構而無需更改它們 五、實現可重用的泛型算法 六、結論

一、概述         在引入協議的擴展之後,蘋果開始推動面向協議編程。即使是一種新的編程範式,它也迅速的在Swift編程和iOS開發中被廣泛採用。這並不令人驚訝。面向協議編程(後文以POP代替)具有高度靈活性、許多優勢。我最喜歡的應用

原创 Swift中的函數式編程:一個不平常且強大的範例 0. 譯者序 1. 概述 2. 目錄

0. 譯者序         筆者讀了《函數式Swift》、各種網文等,對函數式編程的理解依然有些模糊。         出現這種現象與以下幾種原因有關: 函數式程序設計所依賴的理論基礎(Lambda演算)很深奧(相對於程序員這種更多是技

原创 《Swift開發者必備Tips》讀書筆記 一、Swift新元素 二、從 Objective-C/C 到 Swift 三、Swift與開發環境及一些實踐

        這是一本比基礎的Swift教程稍微深入一點的書籍,特別適合看過官方的教程之後的提高。總體來說,本書並不是很深入的書籍,適合剛接觸Swift的讀者,以及想要充實自己基礎知識的讀者。 一、Swift新元素 1.1 柯里化    

原创 《Swift開發者必備Tips》讀書筆記 一、Swift新元素

        這是一本比基礎的Swift教程稍微深入一點的書籍,特別適合看過官方的教程之後的提高。總體來說,本書並不是很深入的書籍,適合剛接觸Swift的讀者,以及想要充實自己基礎知識的讀者。 一、Swift新元素 1.1 柯里化    

原创 《Advanced Swift》第十三章 互用性:讀書筆記 一、封裝一個用C編寫的程序庫 備註

一、封裝一個用C編寫的程序庫         但 Swift 無法直接處理 C 的頭文件,它的依賴關係是基於模塊 (modules) 的。爲了讓一個 用 C 或 Objective-C 編寫的程序庫對 Swift 編譯器可見,它們必須按照

原创 《Advanced Swift》第十二章 編碼和解碼:讀書筆記 零、概述 一、一個最小的例子 二、解碼過程 三、合成代碼 四、手動遵循協議 五、手動遵循協議 六、常見的編碼任務

零、概述         Swift的編碼系統設計圍繞以下幾個核心目標進行。 普遍性 - 對結構體,枚舉和類都適用。 類型安全 - 像 JSON 這樣的可交換格式通常都是弱類型的,而你的代碼應該使用強類型 數據結構。 減少模板代碼 - 當

原创 《Advanced Swift》第九章 協議:讀書筆記 一、概述 二、協議目擊者 三、條件化協議實現 四、協議繼承 五、協議和關聯類型 六、存在體 七、類型消除器

一、概述 協議可以自行擴展新的功能。最簡單的例子就是 Equatable,它要求實現的類型提供 == 操作 符。然後,它會根據 == 的實現提供 != 操作符的功能。類似的,Sequence 協議要求的方法並 不多 (它只要求提供一個產生

原创 《Advanced Swift》第六章 枚舉:讀書筆記 一、概述 二、總和類型和乘積類型 三、模式匹配 四、使用枚舉進行設計 五、原始值(raw value)

        我們在前一章討論的結構體和類都是記錄類型 (record type)。一個記錄由零個或多個具有類型 的字段 (屬性) 組成。元組也屬於記錄類型:實際上它是一個功能較少的輕量級的匿名結構體。         Swift 的枚舉

原创 《Advanced Swift》第四章 函數:讀書筆記 一、綜述 二、函數的靈活性 三、函數作爲代理 四、inout參數和可變方法 五、屬性 六、下標 七、鍵路徑 八、自動閉包

一、綜述         在Swift中函數是一等對象——所有能用變量的地方都可以用函數!,其具有以下特徵: 函數可以像 Int 或者 String 那樣被賦值給變量,也可以作爲另一個函數的輸入參數,或者另一個函數的返回值來使用 函數能夠

原创 《Advanced Swift》第八章 泛型:讀書筆記 一、泛型類型 二、泛型和Any 三、基於泛型的設計

        泛型編程是一種可以保持類型安全性的代碼重用技術,並且一般是指基於類型的的泛型。我們還可以認爲泛型是**多態 (polymoyphism) **的一種形式,而多態則是指一個接口或名稱可以通過多個類型進行訪問的現象。 專屬多態

原创 《Advanced Swift》第十四章 寫在最後:讀書筆記

        雖然 Swift 還很年輕,但是它已經是一門複雜的語言了。想要在一本書裏覆蓋到它的方方面面, 幾乎是不可能的;而想讓讀者都能將它們記住,更是難上加難。但即使你無法馬上學以致用, 我們也堅信,更深入地瞭解你使用的編程語言可以讓

原创 《Advanced Swift》第二章 內建集合類型:讀書筆記 一、數組 二、字典 三、集合 四、Range

        目前見到的編程語言都以某種方式提供了數組、隊列、棧等基礎數據結構。這些數據結構的設計都十分巧妙,在事件、空間兩個維度來說都表現優秀。Swift也提供了數組、字典、集合三種數據結構,這三種數據結構都是基於泛型來實現的,同時也都

原创 《Advanced Swift》第三章 可選值:讀書筆記 一、哨崗值 二、通過枚舉解決魔法數的問題 三、可選值概覽 四、強制解包的時機 五、隱式解包可選值

一、哨崗值 int ch; while ((ch = getchar()) != EOF) { printf("Read character %c\n", ch); } printf("Reached end-of-file\n");

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

一、介紹         此書在Swift 2.0發佈的時候,就開始編寫,此時看起來有些早,因爲很多語言特性尚不成熟。目前,此書已經更新到Swift 5.0。大家剛接觸Swift的時候,能夠在Swift中看到自己所熟悉的C、C++、OC、J

原创 Swift與泛型編程第五彈:總結 一、協議 二、泛型 三、不透明類型 四、類型擦除

前幾彈大部分是根據《Swift程序設計語言》而寫,這本書爲了照顧入門的讀者,所以內容比較拖沓與細碎。爲了再次的理解與記憶,本彈筆者試圖擰乾水分,通過簡潔、直觀的方式進行總結。 一、協議 協議與泛型的關係 由於Swift嚴格的類型檢查