Swift 進階 (Advanced Swift)

Chris Eidhof(克裡斯·安道夫) 王巍

買這商品的人也買了...

商品描述

在本書中,我們涵蓋了Swift程序設計的一些進階話題。如果你已經通讀Apple的Swift編程指南,並且想要深入探索關於這門語言的更多內容,那麽這本書正適合你!Swift非常適合用來進行系統編程,而同時它也能被用於書寫高層級的代碼。我們在書中既會研究像是泛型、協議這樣的高層級抽象的內容,也會涉足像是封裝C代碼以及字符串內部實現這樣的低層級話題。

目錄大綱

第1章介紹1 
1.1本書所面向的讀者2 
1.2主題3 
1.3術語6 
1.4Swift風格指南9 

第2章內建集合類型11 
2.1數組11 
數組和可變性11 
數組和可選值13 
數組變形14 
數組類型25 
2.2字典27 
可變性28 
有用的字典擴展28 
Hashable要求30 
2.3Set31 
集合代數32 
索引集合和字符集合33 
在閉包中使用集合34 
2.4Range34 

第3章集合類型協議37 
3.1序列37 
迭代器38 
無限序列44 
不穩定序列44 
序列和迭代器之間的關係45 
子序列46 
3.2集合類型47 
為隊列設計協議48 
隊列的實現50 
遵守Collection協議51 
遵守ExpressibleByArrayLiteral協議54 
關聯類型55 
3.3索引57 
索引失效58 
索引步進59 
鍊錶60 
3.4切片70
實現自定義切片71 
切片與原集合共享索引74 
通用的PrefixIterator74 
3.5專門的集合類型75 
前向索引76 
雙向索引77 
隨機存取索引78 
MutableCollection79 
RangeReplaceableCollection80 
3.6總結82 

第4章可選值84 
4.1哨崗值84 
4.2通過枚舉解決魔法數的問題86 
4.3可選值概覽88 
iflet88 
whilelet89 
雙重可選值92 
ifvarandwhilevar94 
解包後可選值的作用域95 
可選鏈97 
nil合併運算符99 
可選值map101 
可選值flatMap103 
使用flatMap過濾nil104 
可選值判等105 
switch—case匹配可選值108 
可選值比較109 
4.4強制解包的時機109 
改進強制解包的錯誤信息111 
在調試版本中進行斷言111 
4.5多災多難的隱式可選值113 
隱式可選值行為113 
4.6總結114 

第5章結構體和類115
5.1值類型116 
5.2可變性117 
5.3結構體120 
5.4寫時復制127 
寫時復制(昂貴方式)129 
寫時復制(高效方式)130 
寫時復制的陷阱132 
5.5閉包和可變性134 
5.6內存135 
weak引用137 
unowned引用138 
5.7閉包和內存139 
結構體和類使用實踐139 
5.8閉包和內存142 
引用循環143 
捕獲列表144 
5.9總結145 

第6章函數146 
6.1函數的靈活性152 
函數作為數據155 
6.2局部函數和變量捕獲161 
6.3函數作為代理163 
Foundation框架的代理163 
結構體代理164 
使用函數,而非代理165 
6.4inout參數和可變方法167 
嵌套函數和inout169 
&不意味inout的情況170 
6.5計算屬性和下標171 
延遲存儲屬性172 
使用不同參數重載下標173 
下標進階175 
6.6自動閉包175 
@escaping標註177 
6.7總結179

第7章字符串180 
7.1不再固定寬度180 
字位簇和標準等價181 
7.2字符串和集合184 
字符串與切片187 
7.3簡單的正則表達式匹配器189 
7.4ExpressibleByStringLiteral192 
7.5String的內部結構193 
Character的內部組織結構199 
7.6編碼單元表示方式199 
7.7CustomStringConvertible和
CustomDebugStringConvertible201 
7.8文本輸出流203 
7.9字符串性能207 
7.10展望211 
…… 
第8章錯誤處理212 
第9章泛型228 
第10章協議256 
第11章互用性272