Swift教程Swift語言快速入門(內部資料)

大學霸發表於2014-07-25
Swift語言快速入門(內部資料)

 



前言Swift教程Swift語言快速入門(內部資料)Swift教程Swift語言快速入門(內部資料)
Swift是蘋果公司在2014年WWDC大會上推出的新的程式語言,用於取代原有的蘋果官方語言Objective-C。Swift主要用於編寫iOS和Mac OS應用程式。在此程式語言推出以後,就有將近37萬的開發者在蘋果官網下載Swift手冊進行學習。同時,《Swift中文版》也由國內自發的翻譯小組花費9天時間完成。
通過《Swift中文版》,讀者可以瞭解Swift的一些語法特性。但由於它只是對語法手冊的翻譯,存在以下缺陷:
第一,它僅是一個語法詞典,只是簡單地、逐條地對語法進行解釋。類似於學英語,靠一本英語詞典學會英語,難度是相當的高。
第二,它所具備的例項有限。地球人都知道,學習程式語言的最佳手段是通過例項程式碼學習。沒有足夠的例項,只靠零星的程式碼片段或語法就能理解Swift,那是高手所為。
基於以上不可忽略的事實,本書決定著眼於講解Swift語言的入門,將蘋果官方提供的Swift手冊內容重新進行系統的劃分,並針對每一個知識點配套相應例項,幫助讀者可以快速學習和掌握Swift語言。
1.學習所需的系統和軟體
    Mac OS 10.9.4以上的作業系統
    安裝Xcode 6
2.學習建議Swift教程Swift語言快速入門(內部資料)
大家學習之前,可以致信到xxxxxxxxxxx,獲取相關的資料和軟體。如果大家在學習過程遇到問題,也可以將問題傳送到該郵箱。我們將盡力給大家解決。 
目  錄
第1章  編寫第一個Swift程式 1      Swift教程Swift語言快速入門(內部資料)
1.1  初識Swift 1
1.1.1  Swift的誕生 1
1.1.2  Swift的特點與不足 1
1.2  搭建開發環境 2
1.2.1  安裝Xcode 6 2
1.2.2  安裝元件 3
1.2.3  更新元件和文件 3
1.3  編寫第一個程式 4
1.3.1  建立專案 4
1.3.2  Xcode 6介面介紹 7
1.3.3  編譯和執行 9
1.3.4  編寫程式碼 10
1.3.5  生成可執行檔案 11
1.4  Swift程式碼分析 12
1.4.1  程式碼的構成 12
1.4.2  識別符號 13
1.4.3  關鍵字 14
1.4.4  註釋 14
1.4.5  檔案構成 15
1.5  使用幫助文件 16
第2章  資料型別 17
2.1  常量變數 18
2.1.1  常量 18
2.1.2  變數 18
2.1.3  為宣告的變數和常量指定資料型別 19
2.2  簡單的資料型別 20
2.2.1  整數(Integer) 20
2.2.2  整型 21
2.2.3  浮點型別 21
2.2.4  字元型別/字串型別 23
2.2.5  布林型別 23
2.2.6  可選型別 24
2.3字面值 25
2.3.1  整型字面值 25
2.3.2  浮點型別的字面值 25
2.3.3  字元型字面值 26
2.3.4  字串字面值 26
2.3.5  布林型別的字面值 27
2.4  高階資料型別——元組 27
2.5  型別別名 29
第3章  語句和表示式 30
3.1  語句 30
3.2  運算子與表示式 30
3.2.1  常用術語——元 30
3.2.2  賦值運算子和表示式 31
3.2.3  算術運算子和表示式 31
3.2.4  取餘運算子和表示式 33
3.2.5  自增自減運算子和表示式 34
3.2.6  一元減運算子 36
3.2.7  一元加運算子 36
3.2.8  位運算子 37
3.2.9  溢位運算子 43
3.2.10  比較運算子和表示式 46
3.2.11  三元條件運算子 47
3.2.12  邏輯運算子和表示式 47
3.2.13  範圍運算子 49
3.2.14  複合賦值運算子和表示式 51
3.2.15  求位元組運算子和表示式 51
3.2.16  強制解析 52
3.3  型別轉換 53
3.3.1  整數的轉換 53
3.3.2  整數和浮點數的轉換 53
第4章  字串 54
4.1  字串的初始化 54
4.1.1  字串的種類 54
4.1.2  初始化空的字串 55
4.1.3  使用字串初始化字串 55
4.1.4  計算字元個數 56
4.1.5  遍歷字元 56
4.2  字串組合 56
4.2.1  字串與字元組合 57
4.2.2  字串與字串組合 57
4.3  字串判斷 58
4.3.1  判斷字串是否為空 59
4.3.2  判斷字串相等 59
4.3.3  判斷字首 60
4.3.4  判斷字尾 60
4.4  大小寫轉換 61
4.4.1  大寫轉換 61
4.4.2  小寫轉換 62
4.5  Unicode編碼 62
4.5.1  Unicode術語 62
4.5.2  Unicode字串 63
4.5.3  UTF-8編碼 63
4.5.4  UTF-16編碼 63
4.5.5  UTF標量 64
第5章  集合型別 64
5.1  陣列 64
5.1.1  陣列字面量 65
5.1.2  陣列的定義 65
5.1.3  陣列的初始化 65
5.2  陣列的操作 67
5.2.1  獲取陣列中元素的個數 67
5.2.2  判斷陣列是否為空 67
5.2.3  判斷兩個陣列是否共用相同的元素 68
5.2.4  複製陣列 69
5.2.5  在末尾新增一個元素 69
5.2.6  插入值 70
5.2.7  讀取值 70
5.2.8  修改值 71
5.2.9  刪除值 72
5.2.10  遍歷陣列 73
5.3  字典 74
5.3.1  字典字面量 74
5.3.2  字典的定義 75
5.3.3  字典的初始化 75
5.4  字典的操作 76
5.4.1  獲取字典中的元素個數 76
5.4.2  讀取鍵的值 76
5.4.3  新增元素 77
5.4.4  修改鍵關聯的值 77
5.4.5  刪除鍵 78
5.4.6  遍歷 79
5.5  可變的集合型別 81
第6章  程式控制結構 81
6.1  順序結構 81
6.1.1  程式的執行流程 81
6.1.2  程式碼除錯 82
6.2  選擇結構——if語句 83
6.2.1  if語句 83
6.2.2  if...else語句 84
6.2.3  if...else if語句 86
6.3  選擇結構——switch語句 87
6.3.1  switch語句基本形式 88
6.3.2  規則1:相同的常量或常量表示式 90
6.3.3  規則2:可執行的語句不能為空 90
6.3.4  規則3:多條件組合 90
6.3.5  規則4:範圍匹配 91
6.3.6  規則5:使用元組 91
6.3.7  規則6:數值繫結 92
6.3.8  規則7:使用where關鍵字 93
6.4  迴圈結構——for語句 94
6.4.1  for...in迴圈 95
6.4.2  for-condition-increment條件迴圈 96
6.5  迴圈結構——while語句 97
6.5.1  while迴圈 98
6.5.2  do while迴圈 99
6.6  跳轉語句 100
6.6.1  continue語句 100
6.6.2  break語句 100
6.6.3  fallthrough語句 101
6.6.4  使用標籤語句 102
第7章  函式和閉包 104
7.1  函式介紹 104
7.2  使用無參函式 105
7.2.1  無參函式的宣告定義 105
7.2.2  無參函式的呼叫 106
7.2.3  空函式 107
7.3  使用有參函式 107
7.3.1  有參函式的宣告定義 107
7.3.2  有參函式的呼叫 108
7.3.3  引數的注意事項 108
7.4  函式引數的特殊情況 109
7.4.1  本地引數名 109
7.4.2  外部引數名 110
7.4.3  設定引數預設值 111
7.4.4  為外部引數設定預設值 112
7.4.5  可變引數 112
7.4.6  常量引數和變數引數 113
7.4.7  輸入-輸出引數 114
7.5  函式的返回值 116
7.5.1  具有一個返回值的函式 116
7.5.2  具有多個返回值的函式 116
7.5.3  無返回值 118
7.6  函式型別 118
7.6.1  使用函式型別 118
7.6.2  使用函式型別作為引數型別 119
7.6.3  使用函式型別作為返回值型別 120
7.7  標準函式 121
7.7.1  絕對值函式abs() 121
7.7.2  最大值函式max()/最小值min() 121
7.7.3  序列的最大值函式maxElement()/最小值函式minElement() 123
7.7.4  判斷序列是否包含指定元素函式contains() 124
7.7.5  序列排序函式sort() 124
7.7.6  序列倒序函式reverse() 125
7.8  函式巢狀呼叫形式 125
7.8.1  巢狀呼叫基本形式 126
7.8.2  遞迴呼叫 127
7.9  閉包 128
7.9.1  閉包表示式 128
7.9.2  使用閉包表示式的注意事項 131
7.9.3  Trailing閉包 132
7.9.4  捕獲值 134
第8章  類 134
8.1  類與物件 135
8.1.1  類的組成 135
8.1.2  建立類 135
8.1.3  例項化物件 136
8.2  屬性 136
8.2.1  儲存屬性 136
8.2.2  計算屬性 141
8.2.3  型別屬性 145
8.2.4  屬性監視器 147
8.3  方法 150
8.3.1  例項方法 150
8.3.2  型別方法 154
8.3.3  儲存屬性、區域性變數和全域性變數的區別 156
8.3.4  區域性變數和儲存屬性同名的解決方法——self屬性 158
8.4  下標指令碼 158
8.4.1  定義下標指令碼 158
8.4.2  呼叫下標指令碼 159
8.4.3  使用下標指令碼 159
8.5  類的巢狀 163
8.5.1  直接巢狀 163
8.5.2  多次巢狀 165
8.6  可選連結 167
8.6.1  可選連結的實現方式 167
8.6.2  通過可選連結呼叫屬性、下標指令碼、方法 168
8.6.3  連線多個連結 170
第9章  繼承 171
9.1  為什麼使用繼承 171
9.1.1  減少程式碼量 171
9.1.2  擴充套件功能 172
9.2  繼承的實現 173
9.2.1   繼承的定義 174
9.2.2  屬性的繼承 174
9.2.3  下標指令碼的繼承 175
9.2.4  方法的繼承 176
9.3  繼承的特點 177
9.3.1  多層繼承 177
9.3.2  不可刪除 179
9.4  重寫 179
9.4.1  重寫屬性 179
9.4.2  重寫下標指令碼 182
9.4.3  重寫方法 183
9.4.4  重寫的注意事項 184
9.4.5  訪問父類成員 185
9.4.6  阻止重寫 188
9.5  型別檢查 190
9.5.1  型別檢查——is 191
9.5.2  型別檢查——as 192
9.5.3  AnyObject和Any的型別檢查 194
第10章  列舉型別 196
10.1  列舉型別的組成 196
10.2  定義列舉型別 197
10.2.1  任意型別的列舉型別 197
10.2.2  指定資料型別的列舉型別 197
10.3  定義列舉型別的成員 198
10.3.1  定義任意型別的列舉成員 198
10.3.2  定義指定資料型別的列舉型別成員 199
10.3.3  注意事項 201
10.4  例項化列舉型別的物件 201
10.5  訪問列舉型別中成員的原始值 202
10.5.1  通過成員訪問原始值 202
10.5.2  通過原始值獲取成員 203
10.6  列舉成員與switch匹配 205
10.7  相關值 206
10.8  定義列舉型別的屬性 208
10.8.1  計算屬性 208
10.8.2  型別屬性 209
10.8.3  屬性監視器 209
10.9  定義列舉型別的下標指令碼 210
10.10  定義列舉型別的方法 211
10.10.1  例項方法 211
10.10.2  型別方法 213
10.11  列舉型別的應用 213
10.11.1  為常量/變數賦值 213
10.11.2  作為函式的引數 214
10.12  列舉型別巢狀 215
10.12.1  直接巢狀 215
10.12.2  多次巢狀 216
第11章  結構 218
11.1  結構的定義和例項化 218
11.1.1  結構的構成 218
11.1.2  定義結構 218
11.1.3  例項化物件 219
11.2  定義結構的屬性 219
11.2.1  儲存屬性 219
11.2.2  計算屬性 221
11.2.3  型別屬性 222
11.2.4  新增屬性監視器 222
11.2.5  初始化例項物件 223
11.3   定義結構的下標指令碼 225
11.4  定義結構的方法 226
11.4.1  例項方法 226
11.4.2  型別方法 227
11.5  結構巢狀 228
11.5.1  直接巢狀 228
11.5.2  多次巢狀 229
11.6  類、列舉型別、結構的區別 230
11.7  類、列舉、結構的巢狀 231
11.7.1  列舉使用在類中 231
11.7.2  列舉使用在結構中 231
11.7.3  類使用在結構中 232
第12章  構造方法和析構方法 233
12.1  值型別的構造器 233
12.1.1  預設構造器 234
12.1.2  自定義構造器 234
12.1.3  構造器代理 238
12.2  類的構造器 243
12.2.1  預設構造器 243
12.2.2  自定義構造器 243
12.2.3  構造器代理 248
12.2.4  構造器的繼承和過載 249
12.3  構造器的特殊情況 256
12.3.1  可選型別 256
12.3.2  修改常量屬性 256
12.4  類的構造 257
12.5  設定預設值 259
12.5.1  在定義時直接賦值 259
12.5.2  在構造器中賦值 259
12.5.3  使用閉包設定屬性的預設值 259
12.5.4  使用函式設定預設值 261
12.6  析構方法 261
12.6.1  理解析構 261
12.6.2  析構方法的定義 262
12.6.3  使用析構方法 262
12.6.4  構造方法和析構方法的區別 264
第13章  擴充套件和協議 264
13.1  擴充套件 264
13.1.1  擴充套件的定義 264
13.1.2  擴充套件屬性 265
13.1.3  擴充套件構造器 267
13.1.4  擴充套件方法 270
13.1.5  擴充套件下標指令碼 272
13.1.6  擴充套件巢狀型別 273
13.2  協議 273
13.2.1  協議的定義 274
13.2.2  協議的實現 274
13.2.3  協議的成員宣告——屬性 275
13.2.4  協議的成員宣告——方法 278
13.2.5  協議的成員宣告——可變方法 280
13.3  可選協議 281
13.3.1  定義可選協議 282
13.3.2  宣告可選成員 283
13.3.3  呼叫可選協議 284
13.4  使用協議型別 286
13.4.1  協議型別作為常量、變數等的資料型別 286
13.4.2  協議型別的返回值或引數 287
13.4.3  協議型別作為集合的元素型別 287
13.5  在擴充套件中使用協議 288
13.5.1  在擴充套件中實現協議 288
13.5.2  定義協議成員 288
13.5.3  擴充套件協議宣告 289
13.6  協議的繼承 290
13.7  協議組合 291
13.8  檢查協議的一致性 292
13.9  委託 293
第14章  自動引用計數(ARC) 296
14.1  自動引用計數的工作機制 296
14.2  迴圈強引用的產生 298
14.2.1  類例項之間的迴圈強引用 298
14.2.2  閉包引起的迴圈強引用 300
14.3  迴圈強引用的解決方法 302
14.3.1  解決類例項之間的迴圈強引用 302
14.3.2  解決閉包引起的迴圈強引用 307
第15章  運算子過載 309
15.1  為什麼使用運算子過載 310
15.2  算術運算子的過載 310
15.3  一元減/加運算子的過載 311
15.3.1  一元減運算子的過載 312
15.3.2  一元加運算子的過載 312
15.4  複合賦值運算子的過載 313
15.5  自增自減運算子的過載 315
15.5.1  自增運算子的過載 315
15.5.2  自減運算子的過載 317
15.6  比較運算子的過載 319
15.6.1  “==”相等運算子的過載 319
15.6.2  “!=”不相等運算子的過載 320
15.6.3  其他比較運算子的過載 321
15.7  自定義運算子的過載 322
15.7.1  前置自定義運算子的過載 322
15.7.2  中置自定義運算子的過載 323
15.7.3  後置自定義運算子的過載 323
15.7.4  自定義運算子的優先順序和結合性 325
15.8  注意事項 331
15.8.1  過載後運算子的優先順序 331
15.8.2  不可以過載的運算子 333
第16章  泛型 333
16.1  為什麼使用泛型 333
16.2  泛型函式 334
16.3  泛型型別 335
16.3.1  泛型列舉 335
16.3.2  泛型結構 336
16.3.3  泛型類 338
16.4  泛型類的層次結構 339
16.4.1  使用泛型基類 339
16.4.2  使用泛型派生類 340
16.5  具有多個型別引數的泛型 340
16.6  型別約束 341
16.7  關聯型別 342
16.7.1  定義關聯型別 342
16.7.2  擴充套件已存在型別為關聯型別 344
16.7.3  約束關聯型別 346

Swift教程Swift語言快速入門(內部資料)Swift教程Swift語言快速入門(內部資料)Swift教程Swift語言快速入門(內部資料)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29597077/viewspace-1226608/,如需轉載,請註明出處,否則將追究法律責任。

相關文章