倉頡語言程序設計
董昱
相關主題
商品描述
目錄大綱
基 礎 篇
第1章 認識新朋友——倉頡語言 3
1.1 偉大的里程碑——倉頡語言的誕生 3
1.1.1 編程語言簡述 4
1.1.2 倉頡語言的歷史機遇 5
1.1.3 倉頡語言的基本特性 6
1.2 倉頡語言的開發環境 10
1.2.1 編譯環境的搭建 11
1.2.2 編輯環境的搭建 25
1.2.3 調試環境的搭建 28
1.3 本章小結 28
1.4 習題 29
第2章 倉頡語言初體驗——倉頡語言的基本語法 30
2.1 你好,倉頡! 30
2.1.1 第1個倉頡程序 31
2.1.2 倉頡語言的開發流程 33
2.1.3 語句和語句塊 36
2.1.4 註釋 38
2.2 變量和數據類型 38
2.2.1 變量與數據類型 39
2.2.2 通過整型學習變量的基本使用方法 42
2.2.3 浮點型的基本使用方法 44
2.2.4 變量的作用域 46
2.3 數值運算 47
2.3.1 操作符和表達式 47
2.3.2 整型的數值運算 48
2.3.3 浮點型的數值運算 51
2.3.4 數值的類型轉換 52
2.3.5 復合表達式和括號表達式 53
2.3.6 數值運算實例演練 55
2.4 使用VSCode開發倉頡程序 57
2.5 本章小結 59
2.6 習題 59
第3章 結構化編程——條件結構與循環結構 61
3.1 邏輯運算與關系運算 61
3.1.1 布爾類型 61
3.1.2 邏輯運算 62
3.1.3 關系運算 64
3.2 if表達式 66
3.2.1 if結構 67
3.2.2 if-else結構 68
3.2.3 if表達式的嵌套和else if結構 70
3.2.4 if表達式的值 74
3.3 match表達式與枚舉類型 76
3.3.1 match表達式 76
3.3.2 枚舉類型enum 84
3.3.3 枚舉類型的帶參構造器 88
3.4 循環結構 91
3.4.1 區間類型和for in表達式 91
3.4.2 階乘與復合賦值表達式 94
3.4.3 while表達式 96
3.4.4 do...while表達式 97
3.4.5 死循環 98
3.4.6 循環終止:break和continue 99
3.4.7 循環嵌套 101
3.5 本章小結 102
3.6 習題 103
第4章 讓源代碼整齊易讀——函數與模塊化 105
4.1 函數 106
4.1.1 函數的定義和調用 106
4.1.2 函數的參數 110
4.1.3 命名參數的用法 113
4.1.4 函數的返回 115
4.1.5 使用元組模擬函數的多返回值 118
4.1.6 使用Option<T>作為函數的返回值 120
4.1.7 主函數的返回值 123
4.2 函數的遞歸和重載 124
4.2.1 函數的遞歸 124
4.2.2 函數的重載 126
4.3 組織源代碼 128
4.3.1 多文件編譯 129
4.3.2 包 131
4.3.3 模塊 135
4.3.4 庫 138
4.4 math標準庫 139
4.4.1 常數 139
4.4.2 常用數學函數 142
4.5 本章小結 144
4.6 習題 144
第5章 處理文本——字符與字符串 145
5.1 字符和字符編碼 145
5.1.1 字符集和字符編碼 146
5.1.2 字符 147
5.1.3 字符串 150
5.2 操作字符串 153
5.2.1 字符串的長度和索引 153
5.2.2 字符串的關系運算 156
5.2.3 字符串的包含關系 157
5.2.4 裁剪和連接 158
5.2.5 字符串的高級操作 160
5.2.6 Unicode標準庫 162
5.3 字符串的類型轉換 166
5.3.1 字符串類型轉換的基本思路 166
5.3.2 格式化轉換 167
5.3.3 字符串型轉其他類型 172
5.4 字符和碼點值的轉換 174
5.5 基本數據類型大家庭 175
5.5.1 Unit和Nothing 175
5.5.2 基本數據類型小結 176
5.6 本章小結 177
5.7 習題 178
提 高 篇
第6章 虛擬的小宇宙——面向對象編程 181
6.1 封裝 182
6.1.1 類與對象 183
6.1.2 構造函數 189
6.1.3 靜態成員 193
6.1.4 屬性 197
6.2 繼承 203
6.2.1 類的繼承 203
6.2.2 重寫和重定義 205
6.2.3 成員的可見修飾符 213
6.2.4 單例類 215
6.2.5 轉型 216
6.3 多態 218
6.3.1 通過繼承和重寫實現多態 219
6.3.2 抽象類 220
6.4 接口和擴展 222
6.4.1 接口 222
6.4.2 通過接口實現多態 227
6.4.3 擴展 228
6.4.4 組合優於繼承 231
6.5 本章小結 233
6.6 習題 233
第7章 類型的故事——記錄與類型系統 234
7.1 記錄類型 234
7.1.1 記錄及其構造函數 235
7.1.2 記錄的實例 237
7.1.3 記錄的成員函數與mut關鍵字 238
7.1.4 靜態成員 240
7.1.5 成員的可見修飾符 242
7.2 值類型與引用類型 244
7.3 關於數據類型的高級操作 246
7.3.1 再探接口與Any類型 247
7.3.2 子類型關系 250
7.3.3 類型判斷 251
7.3.4 類型轉換 253
7.3.5 類型別名 255
7.4 泛型 255
7.4.1 泛型的基本用法 256
7.4.2 泛型約束 262
7.5 本章小結 265
7.6 習題 265
第8章 同類數據排排隊——集合類型 266
8.1 有序集合類型 267
8.1.1 列表 267
8.1.2 數組 274
8.1.3 緩沖區 277
8.1.4 將字符串轉換為數組 281
8.1.5 多維有序集合 282
8.2 無序集合類型 284
8.2.1 HashSet 285
8.2.2 HashMap 290
8.3 迭代器 294
8.4 本章小結 296
8.5 習題 296
第9章 讀寫文件——異常處理與輸入輸出 298
9.1 異常處理 298
9.1.1 異常 299
9.1.2 捕獲異常 299
9.1.3 拋出異常 304
9.1.4 自定義異常 307
9.2 使用Result<T>和Option<T>處理異常 308
9.2.1 使用Result<T>承載異常 308
9.2.2 Option<T>拋出異常 312
9.3 輸入與輸出 313
9.3.1 文件信息類和目錄信息類 314
9.3.2 字符流 315
9.3.3 文件流 321
9.4 位運算與文本文件的讀寫 327
9.4.1 位運算 327
9.4.2 讀寫文本文件 332
9.5 標準輸入和正則表達式 337
9.5.1 標準輸入 337
9.5.2 正則表達式的基本用法 338
9.5.3 模擬用戶登錄 343
9.6 本章小結 345
9.7 習題 345
第10章 用數學思維來編程——函數式編程 347
10.1 函數類型及其用法 347
10.1.1 函數類型 348
10.1.2 Lambda表達式 350
10.1.3 閉包 352
10.1.4 嵌套函數 354
10.2 函數式編程 355
10.2.1 函數式編程中的函數和變量 355
10.2.2 柯里化與鏈式調用 356
10.2.3 高階函數 362
10.3 泛型函數 366
10.4 尾隨閉包 369
10.5 再探重載 372
10.5.1 函數重載的高級規則 372
10.5.2 操作符重載 376
10.6 本章小結 382
10.7 習題 382
第11章 讓程序多姿多彩——並發和網絡編程 383
11.1 並發 383
11.1.1 倉頡線程的創建 384
11.1.2 通過Future<T>實現線程等待 387
11.2 並發的同步機制 389
11.2.1 互斥鎖 391
11.2.2 原子操作 398
11.3 Socket通信 404
11.3.1 使用Socket通信 404
11.3.2 群聊應用程序 410
11.4 HTTP服務器和客戶端 416
11.4.1 HTTP服務器 416
11.4.2 處理HTTP請求 423
11.4.3 HTTP客戶端 433
11.4.4 Cookie和CookieJar 436
11.5 本章小結 442
11.6 習題 442
第12章 關於編程的編程——元編程 443
12.1 詞法分析和語法分析 443
12.1.1 詞法分析和詞法單元 443
12.1.2 詞法單元 445
12.1.3 詞法單元序列 446
12.1.4 quote表達式 447
12.1.5 抽象語法樹 449
12.2 宏 454
12.2.1 非屬性宏 455
12.2.2 屬性宏 459
12.2.3 宏展開 460
12.3 本章小結 461
12.4 習題 461
應 用 篇
第13章 跨語言互操作和2048小游戲 465
13.1 跨語言互操作 465
13.1.1 倉頡語言和C語言的類型映射關系 465
13.1.2 倉頡語言調用C語言函數 466
13.1.3 跨語言調用的高級用法 473
13.1.4 OS庫的簡單應用 475
13.2 隨機數的生成和時間操作 480
13.3 2048小游戲 486
13.3.1 項目需求 486
13.3.2 實現思路 487
13.3.3 具體實現 488
13.4 本章小結 502
13.5 習題 502
第14章 用倉頡語言搭建博客網站 503
14.1 JSON數據與序列化 503
14.1.1 JSON數據的處理 504
14.1.2 序列化和反序列化 511
14.2 搭建博客網站 517
14.2.1 項目需求 517
14.2.2 用戶界面層 519
14.2.3 數據訪問層 524
14.2.4 業務邏輯層 529
14.3 本章小結 534
14.4 習題 534
附錄A 倉頡語言中的關鍵字 535
附錄B 倉頡語言的頂層定義 536
附錄C 操作符及其優先級 537
附錄D 標準庫 539
附錄E TokenKind枚舉 540
IV
V