倉頡語言程序設計

董昱

  • 出版商: 清華大學
  • 出版日期: 2024-07-01
  • 定價: $774
  • 售價: 8.5$658
  • 語言: 簡體中文
  • ISBN: 7302606307
  • ISBN-13: 9787302606307
  • 下單後立即進貨 (約4週~6週)

  • 倉頡語言程序設計-preview-1
  • 倉頡語言程序設計-preview-2
  • 倉頡語言程序設計-preview-3
倉頡語言程序設計-preview-1

商品描述

"本書定位於倉頡語言的入門教程,成體系深入淺出地介紹倉頡語言應用開發的基礎知識和常用標準庫的使用方法,面向所有對倉頡語言的愛好者。 本書分為14章。第1~5章為基礎篇,介紹倉頡語言的基本數據類型和基礎語法。第6~12章為了提高篇,介紹自定義數據類型、集合類型的基本用法,面向對象編程、函數式編程等常用編程範式,以及文件讀寫和網絡編程的基礎知識。第13~14章為應用篇,介紹跨語言互操作、序列化等技術,並通過2個實戰項目(網絡聊天室、2048小游戲和博客網站)來帶領讀者親身體驗倉頡項目開發的全過程。 書中包含了310個實例、3個完整的倉頡項目,使讀者在掌握理論知識的基礎上掌握應用開發的基本流程。書中所有代碼示例均在模擬器或真機上通過測試。 每章都有相應的教學課件,並且在章節的結尾處設置了幾個用於鞏固知識的習題,可以作為大學電腦、軟件專業相關課程的教材或參考書,也可作為倉頡語言應用開發工程師的參考書籍。 "

目錄大綱

  

  

  

  

  

  

  

  

基  礎  篇

第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