倉頡語言程序設計(開發(fā)者成長叢書) 版權信息
- ISBN:9787302606307
- 條形碼:9787302606307 ; 978-7-302-60630-7
- 裝幀:平裝-膠訂
- 冊數(shù):暫無
- 重量:暫無
- 所屬分類:>>
倉頡語言程序設計(開發(fā)者成長叢書) 本書特色
倉頡語言融合了眾多語言的優(yōu)秀特性,優(yōu)雅開放、全面易用,本書以通俗的文字介紹倉頡應用開發(fā)的核心知識,并詳細剖析其特性。
● 全面、分步、詳細地講解倉頡語言的基本語法和實例用法;● 配套14章教學課件、310個實例源代碼,2個綜合實戰(zhàn)項目;● 案例豐富,注釋詳盡,帶領讀者實現(xiàn)從0到1的突破。
14章教學課件,310個示例源代碼,2個綜合實戰(zhàn)項目!倉頡語言程序設計入門教程,詳細講解其基礎語法和應用實例★倉頡語言作為一門面向全場景應用開發(fā)的通用編程語言,其多范式編程、領域易擴展等眾多現(xiàn)代編程語言特性吸引了許多開發(fā)者。董昱老師很早參與到倉頡語言的內測,并且已經在倉頡語言社區(qū)貢獻了很多開源代碼!秱}頡語言程序設計》深入淺出地講解倉頡語言的基本語法和實例用法,涵蓋了大多數(shù)技術要點,推薦倉頡語言學習者和開發(fā)者閱讀。
——馮新宇,南京大學教授、華為編程語言實驗室主任、倉頡編程語言總架構師
★倉頡作為全新的通用編程語言,主動吸納編程語言研究中*新的概念、理論和成果。同時,在將近一年的倉頡社區(qū)運營中,我們也在不斷征求、討論和融合內測參與者意見和建議,以期望能夠以優(yōu)良的語言特性來滿足各種實際開發(fā)需求。本書定位于倉頡編程語言的入門書籍,比較詳細地介紹了倉頡語言的基礎語法和特性,推薦倉頡語言初學者和開發(fā)者閱讀,同時建議讀者能夠投入到倉頡語言的開源社區(qū)中,共建倉頡語言的未來。
——王學智,華為編程語言實驗室倉頡編程語言項目經理
★編程語言的發(fā)展是長期且緩慢的,但其規(guī)律有跡可循。編程語言將會沿著更有表現(xiàn)力的方向發(fā)展下去,倉頡語言的誕生順應了這種趨勢,融合了諸多新興的編程理念,是著眼于未來的一門編程語言。董昱老師是51CTO首批參與倉頡語言內測的講師,對倉頡語言的設計理念有很深的理解,希望本書能夠為開發(fā)者打開倉頡語言這扇通往未來的門。
——熊平,51CTO 創(chuàng)始人&CEO
★倉頡語言是華為自主研發(fā)的新一代編程語言,吸收了多范式編程、類型安全、輕量式并發(fā)等優(yōu)秀特性,易學易用。董昱老師是倉頡語言的先行者,并且已經使用倉頡語言開展了包括神經網絡在內的眾多算法研究。本書凝結了董昱老師在實際開發(fā)過程中的許多經驗和編程技巧,適合新手入門學習,也適合軟件工程師將其作為工具書。
——陳祖剛 博士,中國科學院空天信息創(chuàng)新研究院助力研究員
★聲明式編程、多范式編程、并發(fā)編程這三個理念影響了越來越多的開發(fā)者,已然成為趨勢,逐漸被各大廠納入新語言或新框架的設計中。倉頡語言在設計上兼具三者,回歸編程人員的使用體驗,更有openHarmony、HarmonyOS和openEuler作為應用平臺,有機會快速成長。《倉頡語言程序設計》這本書將倉頡語言的特性做了詳細剖析,是一本不可多得的匠心之作,建議開發(fā)者仔細研讀,定會有滿滿的收獲。
——宋佳宸,51CTO VP & 鴻蒙技術社區(qū)創(chuàng)始人
★自倉頡語言內測之日起,董昱老師就在倉頡語言的學習和研究上投入了飽滿的熱情。我經?吹蕉爬蠋熢趦葴y群里討論倉頡語言的技術知識點并分享典型實戰(zhàn)案例,如今欣聞董昱老師將過去半年多的學習和研究成果集結成書!秱}頡語言程序設計》系統(tǒng)地講解了倉頡語言的核心技術,并附以2048小游戲和博客網站兩個實戰(zhàn)項目,帶領讀者實現(xiàn)從0到1的突破。向所有倉頡語言學習者強烈推薦本書!
——張榮超,OpenHarmony項目群TSC(技術指導委員會)委員
倉頡語言程序設計(開發(fā)者成長叢書) 內容簡介
"本書定位于倉頡語言的入門教程,成體系深入淺出地介紹倉頡語言應用開發(fā)的基礎知識和常用標準庫的使用方法,面向所有對倉頡語言的愛好者。
本書分為14章。第1~5章為基礎篇,介紹倉頡語言的基本數(shù)據類型和基礎語法。第6~12章為了提高篇,介紹自定義數(shù)據類型、集合類型的基本用法,面向對象編程、函數(shù)式編程等常用編程范式,以及文件讀寫和網絡編程的基礎知識。第13~14章為應用篇,介紹跨語言互操作、序列化等技術,并通過2個實戰(zhàn)項目(網絡聊天室、2048小游戲和博客網站)來帶領讀者親身體驗倉頡項目開發(fā)的全過程。
書中包含了310個實例、3個完整的倉頡項目,使讀者在掌握理論知識的基礎上掌握應用開發(fā)的基本流程。書中所有代碼示例均在模擬器或真機上通過測試。
每章都有相應的教學課件,并且在章節(jié)的結尾處設置了幾個用于鞏固知識的習題,可以作為大學計算機、軟件專業(yè)相關課程的教材或參考書,也可作為倉頡語言應用開發(fā)工程師的參考書籍。
"
倉頡語言程序設計(開發(fā)者成長叢書) 目錄
基 礎 篇
第1章 認識新朋友——倉頡語言 3
1.1 偉大的里程碑——倉頡語言的誕生 3
1.1.1 編程語言簡述 4
1.1.2 倉頡語言的歷史機遇 5
1.1.3 倉頡語言的基本特性 6
1.2 倉頡語言的開發(fā)環(huán)境 10
1.2.1 編譯環(huán)境的搭建 11
1.2.2 編輯環(huán)境的搭建 25
1.2.3 調試環(huán)境的搭建 28
1.3 本章小結 28
1.4 習題 29
第2章 倉頡語言初體驗——倉頡語言的基本語法 30
2.1 你好,倉頡! 30
2.1.1 第1個倉頡程序 31
2.1.2 倉頡語言的開發(fā)流程 33
2.1.3 語句和語句塊 36
2.1.4 注釋 38
2.2 變量和數(shù)據類型 38
2.2.1 變量與數(shù)據類型 39
2.2.2 通過整型學習變量的基本使用方法 42
2.2.3 浮點型的基本使用方法 44
2.2.4 變量的作用域 46
2.3 數(shù)值運算 47
2.3.1 操作符和表達式 47
2.3.2 整型的數(shù)值運算 48
2.3.3 浮點型的數(shù)值運算 51
2.3.4 數(shù)值的類型轉換 52
2.3.5 復合表達式和括號表達式 53
2.3.6 數(shù)值運算實例演練 55
2.4 使用VSCode開發(fā)倉頡程序 57
2.5 本章小結 59
2.6 習題 59
第3章 結構化編程——條件結構與循環(huán)結構 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 循環(huán)結構 91
3.4.1 區(qū)間類型和for in表達式 91
3.4.2 階乘與復合賦值表達式 94
3.4.3 while表達式 96
3.4.4 do...while表達式 97
3.4.5 死循環(huán) 98
3.4.6 循環(huán)終止:break和continue 99
3.4.7 循環(huán)嵌套 101
3.5 本章小結 102
3.6 習題 103
第4章 讓源代碼整齊易讀——函數(shù)與模塊化 105
4.1 函數(shù) 106
4.1.1 函數(shù)的定義和調用 106
4.1.2 函數(shù)的參數(shù) 110
4.1.3 命名參數(shù)的用法 113
4.1.4 函數(shù)的返回 115
4.1.5 使用元組模擬函數(shù)的多返回值 118
4.1.6 使用Option作為函數(shù)的返回值 120
4.1.7 主函數(shù)的返回值 123
4.2 函數(shù)的遞歸和重載 124
4.2.1 函數(shù)的遞歸 124
4.2.2 函數(shù)的重載 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 常數(shù) 139
4.4.2 常用數(shù)學函數(shù) 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 基本數(shù)據類型大家庭 175
5.5.1 Unit和Nothing 175
5.5.2 基本數(shù)據類型小結 176
5.6 本章小結 177
5.7 習題 178
提 高 篇
第6章 虛擬的小宇宙——面向對象編程 181
6.1 封裝 182
6.1.1 類與對象 183
6.1.2 構造函數(shù) 189
6.1.3 靜態(tài)成員 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 多態(tài) 218
6.3.1 通過繼承和重寫實現(xiàn)多態(tài) 219
6.3.2 抽象類 220
6.4 接口和擴展 222
6.4.1 接口 222
6.4.2 通過接口實現(xiàn)多態(tài) 227
6.4.3 擴展 228
6.4.4 組合優(yōu)于繼承 231
6.5 本章小結 233
6.6 習題 233
第7章 類型的故事——記錄與類型系統(tǒng) 234
7.1 記錄類型 234
7.1.1 記錄及其構造函數(shù) 235
7.1.2 記錄的實例 237
7.1.3 記錄的成員函數(shù)與mut關鍵字 238
7.1.4 靜態(tài)成員 240
7.1.5 成員的可見修飾符 242
7.2 值類型與引用類型 244
7.3 關于數(shù)據類型的高級操作 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章 同類數(shù)據排排隊——集合類型 266
8.1 有序集合類型 267
8.1.1 列表 267
8.1.2 數(shù)組 274
8.1.3 緩沖區(qū) 277
8.1.4 將字符串轉換為數(shù)組 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和Option處理異常 308
9.2.1 使用Result承載異常 308
9.2.2 Option拋出異常 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章 用數(shù)學思維來編程——函數(shù)式編程 347
10.1 函數(shù)類型及其用法 347
10.1.1 函數(shù)類型 348
10.1.2 Lambda表達式 350
10.1.3 閉包 352
10.1.4 嵌套函數(shù) 354
10.2 函數(shù)式編程 355
10.2.1 函數(shù)式編程中的函數(shù)和變量 355
10.2.2 柯里化與鏈式調用 356
10.2.3 高階函數(shù) 362
10.3 泛型函數(shù) 366
10.4 尾隨閉包 369
10.5 再探重載 372
10.5.1 函數(shù)重載的高級規(guī)則 372
10.5.2 操作符重載 376
10.6 本章小結 382
10.7 習題 382
第11章 讓程序多姿多彩——并發(fā)和網絡編程 383
11.1 并發(fā) 383
11.1.1 倉頡線程的創(chuàng)建 384
11.1.2 通過Future實現(xiàn)線程等待 387
11.2 并發(fā)的同步機制 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語言函數(shù) 466
13.1.3 跨語言調用的高級用法 473
13.1.4 OS庫的簡單應用 475
13.2 隨機數(shù)的生成和時間操作 480
13.3 2048小游戲 486
13.3.1 項目需求 486
13.3.2 實現(xiàn)思路 487
13.3.3 具體實現(xiàn) 488
13.4 本章小結 502
13.5 習題 502
第14章 用倉頡語言搭建博客網站 503
14.1 JSON數(shù)據與序列化 503
14.1.1 JSON數(shù)據的處理 504
14.1.2 序列化和反序列化 511
14.2 搭建博客網站 517
14.2.1 項目需求 517
14.2.2 用戶界面層 519
14.2.3 數(shù)據訪問層 524
14.2.4 業(yè)務邏輯層 529
14.3 本章小結 534
14.4 習題 534
附錄A 倉頡語言中的關鍵字 535
附錄B 倉頡語言的頂層定義 536
附錄C 操作符及其優(yōu)先級 537
附錄D 標準庫 539
附錄E TokenKind枚舉 540
展開全部
倉頡語言程序設計(開發(fā)者成長叢書) 作者簡介
董昱,華為開發(fā)者專家(HUAWEI Developer Experts)、倉頡語言社區(qū)講師(Cangjie Commumity Speaker)、倉頡庫開發(fā)者(Cangjie Library Developer),首批倉頡語言開發(fā)者,在軟件和算法設計等方面具有豐富的經驗。