注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)倉頡語言核心編程:入門、進(jìn)階與實(shí)戰(zhàn)

倉頡語言核心編程:入門、進(jìn)階與實(shí)戰(zhàn)

倉頡語言核心編程:入門、進(jìn)階與實(shí)戰(zhàn)

定 價(jià):¥109.00

作 者: 徐禮文
出版社: 清華大學(xué)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

ISBN: 9787302625889 出版時(shí)間: 2024-07-01 包裝: 平裝-膠訂
開本: 16開 頁數(shù): 字?jǐn)?shù):  

內(nèi)容簡介

  本書是一本系統(tǒng)闡述倉頡程序設(shè)計(jì)語言的技術(shù)書籍,倉頡程序設(shè)計(jì)語言是一門由華為公司研發(fā)的國產(chǎn)計(jì)算機(jī)高級編程語言。全倉頡語言作為新一代的面向應(yīng)用的全場景編程語言,兼具開發(fā)效率和運(yùn)行性能,并且有極強(qiáng)的領(lǐng)域擴(kuò)展能力。倉頡語言在設(shè)計(jì)上廣泛吸收和借鑒了現(xiàn)代編程語言特性,是首個(gè)面向全場景應(yīng)用開發(fā)的通用編程語言。本書全面介紹了倉頡語言的語法設(shè)計(jì)和應(yīng)用開發(fā),分為3篇共20章。基礎(chǔ)篇(第1~9章)介紹倉頡語言的安裝與開發(fā)環(huán)境搭建、數(shù)據(jù)類型、控制流、集合、函數(shù)式編程;進(jìn)階篇(第10~16章)介紹倉頡語言的面向?qū)ο缶幊?、擴(kuò)展、模塊管理和包、標(biāo)準(zhǔn)包和單元測試;高級篇(第17~20章)介紹倉頡語言的元編程、跨語言編程并發(fā)編程和網(wǎng)絡(luò)編程。本書適用于對倉頡語言感興趣的編程愛好者,也適用于在校計(jì)算機(jī)專業(yè)學(xué)生,本書可以作為倉頡語言學(xué)習(xí)者的入門參考書,也可以作為大專院校倉頡語言課程的學(xué)習(xí)教材。

作者簡介

  徐禮文,北京理工大學(xué)信息技術(shù)創(chuàng)新學(xué)院教研中心副主任、華為開發(fā)者專家(HDE)、開放原子開源基金會(huì)教育認(rèn)證講師、51CTO開源社區(qū)專家、潤和軟件社區(qū)專家、華為倉頡語言社區(qū)專家,華為倉頡語言最早期布道者和商業(yè)項(xiàng)目參與者。主要從事跨平臺技術(shù)、人工智能、區(qū)塊鏈,以及數(shù)字化架構(gòu)方向的研究和技術(shù)指導(dǎo)工作,對國內(nèi)外相關(guān)領(lǐng)域的技術(shù)、理論和實(shí)踐有很深的理解和研究。

圖書目錄

基  礎(chǔ)  篇
第1章  倉頡語言介紹 3
1.1  倉頡語言的主要特征 3
1.2  倉頡語言的特點(diǎn) 4
1.3  倉頡語言對中國軟件產(chǎn)業(yè)的價(jià)值 5
1.3.1  自研編程語言的價(jià)值 5
1.3.2  倉頡語言的價(jià)值 7
1.4  本章小結(jié) 8
第2章  安裝與配置 9
2.1  Linux環(huán)境搭建(Ubuntu) 9
2.1.1  操作系統(tǒng)要求 9
2.1.2  倉頡工具鏈的安裝 10
2.1.3  混合開發(fā)環(huán)境配置 11
2.2  Windows環(huán)境搭建 14
2.2.1  倉頡工具鏈的安裝 14
2.2.2  安裝CangjieStudio開發(fā)工具 14
2.3  第1個(gè)倉頡程序 20
2.3.1  創(chuàng)建項(xiàng)目目錄 20
2.3.2  第1個(gè)“Hello, World!”程序 20
2.3.3  編譯執(zhí)行倉頡程序 21
2.4  本章小結(jié) 21
第3章  編程基礎(chǔ) 22
3.1  程序結(jié)構(gòu) 22
3.2  關(guān)鍵字 23
3.3  標(biāo)識符 24
3.3.1  普通標(biāo)識符 24
3.3.2  原始標(biāo)識符 24
3.4  注釋 25
3.4.1  單行注釋 25
3.4.2  多行注釋 25
3.5  變量和常量 26
3.5.1  定義變量 26
3.5.2  定義常量 27
3.5.3  作用域 27
3.5.4  初始化 28
3.6  代碼編寫規(guī)范 29
3.7  本章小結(jié) 30
第4章  數(shù)據(jù)類型 31
4.1  整數(shù)類型 31
4.1.1  整數(shù)類型的表示范圍 31
4.1.2  整數(shù)類型的運(yùn)算 32
4.2  浮點(diǎn)類型 36
4.3  布爾類型 38
4.4  字符類型 38
4.5  字符串類型 39
4.5.1  單行字符串 39
4.5.2  多行字符串 40
4.5.3  插值字符串 41
4.5.4  字符串操作 41
4.6  Unit類型 42
4.7  元組類型 42
4.7.1  元組定義 42
4.7.2  元組類型的字面量 42
4.8  區(qū)間類型 43
4.8.1  左閉右開區(qū)間 43
4.8.2  左閉右閉區(qū)間 43
4.9  Nothing類型 44
4.10  枚舉類型 44
4.10.1  enum的定義和使用 44
4.10.2  enum值 45
4.10.3  enum的模式匹配 46
4.11  本章小結(jié) 47
第5章  類型轉(zhuǎn)換 48
5.1  數(shù)值類型之間的轉(zhuǎn)換 48
5.2  Char和UInt32之間的轉(zhuǎn)換 49
5.3  is和as操作符 50
5.3.1  is操作符 50
5.3.2  as操作符 51
5.4  使用Convert庫進(jìn)行類型轉(zhuǎn)換 51
5.4.1  字符串轉(zhuǎn)布爾類型 51
5.4.2  字符串轉(zhuǎn)整數(shù)類型 52
5.4.3  字符串轉(zhuǎn)浮點(diǎn)類型 52
5.5  類型別名 52
5.6  本章小結(jié) 53
第6章  控制流 54
6.1  倉頡控制流介紹 54
6.2  if表達(dá)式 54
6.2.1  使用if和else 55
6.2.2  使用else if 56
6.2.3  if表達(dá)式的類型 56
6.3  循環(huán)表達(dá)式 58
6.3.1  for…in基本用法 58
6.3.2  while表達(dá)式 60
6.3.3  do…while表達(dá)式 62
6.3.4  break和continue表達(dá)式 63
6.4  本章小結(jié) 66
第7章  匹配模式 67
7.1  switch與match對比 67
7.2  match表達(dá)式 67
7.2.1  含待匹配值的match表達(dá)式 67
7.2.2  不含待匹配值的match表達(dá)式 70
7.2.3  match表達(dá)式的類型 70
7.3  匹配模型 71
7.3.1  常量模式 71
7.3.2  通配符模式 72
7.3.3  變量模式 72
7.3.4  元組模式 73
7.3.5  類模式 73
7.3.6  枚舉模式 74
7.3.7  嵌套組合模式 76
7.4  模式的可反駁性 76
7.4.1  可反駁模式 77
7.4.2  不可反駁模式 77
7.5  本章小結(jié) 79
第8章  集合類型 80
8.1  集合類型介紹 80
8.2  Array 80
8.2.1  數(shù)組定義 81
8.2.2  訪問數(shù)組成員 81
8.2.3  數(shù)組元素操作 83
8.2.4  多維數(shù)組 83
8.3  ArrayList 84
8.3.1  構(gòu)造ArrayList 84
8.3.2  訪問ArrayList成員 84
8.3.3  修改ArrayList 86
8.3.4  增加ArrayList的大小 88
8.4  HashSet 89
8.4.1  HashSet初始化 89
8.4.2  訪問HashSet成員 89
8.4.3  HashSet操作 91
8.5  HashMap 92
8.5.1  HashMap初始化 92
8.5.2  訪問HashMap成員 93
8.5.3  HashMap操作 94
8.6  本章小結(jié) 96
第9章  函數(shù) 97
9.1  函數(shù)定義 97
9.1.1  參數(shù)列表 97
9.1.2  函數(shù)返回值類型 99
9.1.3  函數(shù)體 100
9.1.4  函數(shù)變量作用域 101
9.1.5  函數(shù)體類型 101
9.2  函數(shù)類型 102
9.2.1  函數(shù)類型作為參數(shù)類型 102
9.2.2  函數(shù)類型作為返回類型 103
9.2.3  函數(shù)類型作為變量類型 103
9.3  嵌套函數(shù) 103
9.4  Lambda表達(dá)式 104
9.4.1  Lambda表達(dá)式定義 104
9.4.2  Lambda表達(dá)式調(diào)用 105
9.5  函數(shù)閉包 105
9.6  函數(shù)調(diào)用語法糖 106
9.6.1  尾隨閉包 106
9.6.2  流表達(dá)式 107
9.7  函數(shù)重載 109
9.7.1  函數(shù)重載定義 109
9.7.2  函數(shù)重載決議 112
9.8  操作符重載 113
9.8.1  操作符重載函數(shù)定義和使用 114
9.8.2  可以被重載的操作符 115
9.9  mut函數(shù) 116
9.10  遞歸函數(shù) 117
9.11  本章小結(jié) 118
  
進(jìn)  階  篇
第10章  面向?qū)ο缶幊?121
10.1  面向?qū)ο蟪绦蛟O(shè)計(jì) 121
10.1.1  什么是面向?qū)ο缶幊?121
10.1.2  面向過程與面向?qū)ο?121
10.1.3  面向?qū)ο缶幊痰奶卣?123
10.2  結(jié)構(gòu)體(Struct) 125
10.2.1  如何選擇結(jié)構(gòu)體和類 125
10.2.2  定義結(jié)構(gòu)體 126
10.2.3  構(gòu)造函數(shù) 127
10.2.4  成員變量 129
10.2.5  成員函數(shù) 130
10.2.6  成員的可見修飾符 131
10.2.7  創(chuàng)建結(jié)構(gòu)體實(shí)例 133
10.2.8  mut函數(shù) 134
10.3  類(Class) 135
10.3.1  定義類 136
10.3.2  構(gòu)造函數(shù) 137
10.3.3  成員變量 140
10.3.4  成員函數(shù) 141
10.3.5  可見修飾符 142
10.3.6  prop屬性 144
10.3.7  創(chuàng)建對象 147
10.4  抽象類(Abstract Class) 148
10.4.1  抽象類的作用 148
10.4.2  抽象類的定義 148
10.5  類的繼承 149
10.5.1  類的繼承條件 150
10.5.2  抽象屬性和抽象函數(shù) 153
10.5.3  單繼承 154
10.5.4  多態(tài)性 156
10.5.5  子類調(diào)用父類構(gòu)造函數(shù) 156
10.5.6  覆蓋和重定義 158
10.6  接口(Interface) 160
10.6.1  接口特點(diǎn) 160
10.6.2  接口定義 160
10.6.3  接口繼承 164
10.6.4  接口實(shí)現(xiàn) 166
10.6.5  Any類型 168
10.7  面向?qū)ο蟀咐贺澇陨哂螒?169
10.7.1  設(shè)計(jì)類結(jié)構(gòu) 169
10.7.2  創(chuàng)建項(xiàng)目 170
10.7.3  地圖類實(shí)現(xiàn) 170
10.7.4  食物類實(shí)現(xiàn) 174
10.7.5  蛇類實(shí)現(xiàn) 176
10.7.6  玩家類實(shí)現(xiàn) 182
10.7.7  編譯和運(yùn)行 189
10.8  本章小結(jié) 190
第11章  泛型 191
11.1  泛型基礎(chǔ)概念 191
11.2  泛型函數(shù) 192
11.2.1  全局泛型函數(shù) 192
11.2.2  局部泛型函數(shù) 194
11.2.3  泛型成員函數(shù) 194
11.2.4  靜態(tài)泛型函數(shù) 195
11.3  泛型結(jié)構(gòu)體 196
11.4  泛型類 197
11.5  泛型枚舉 199
11.6  泛型的類型別名 200
11.7  泛型接口 200
11.7.1  泛型接口格式 200
11.7.2  定義生成器接口 201
11.7.3  定義數(shù)據(jù)庫操作接口 202
11.8  泛型約束 203
11.8.1  接口約束 204
11.8.2  子類型約束 204
11.9  本章小結(jié) 205
第12章  擴(kuò)展 206
12.1  擴(kuò)展的定義 206
12.1.1  接口擴(kuò)展 207
12.1.2  直接擴(kuò)展 209
12.2  擴(kuò)展的孤兒規(guī)則 210
12.3  擴(kuò)展的訪問和遮蓋 211
12.4  擴(kuò)展的導(dǎo)入導(dǎo)出 212
12.4.1  直接擴(kuò)展的導(dǎo)入導(dǎo)出 213
12.4.2  接口擴(kuò)展的導(dǎo)入導(dǎo)出 213
12.5  本章小結(jié) 215
第13章  錯(cuò)誤處理 216
13.1  異常(Exception) 216
13.1.1  常見運(yùn)行時(shí)異常 217
13.1.2  異常處理 218
13.2  Option類型用于錯(cuò)誤處理 221
13.2.1  模式匹配 221
13.2.2  coalescing操作符(??) 222
13.2.3  問號操作符(?) 222
13.2.4  getOrThrow函數(shù) 223
13.3  本章小結(jié) 223
第14章  模塊管理和包 224
14.1  倉頡包和模塊介紹 224
14.2  模塊管理工具 225
14.2.1  CPM常用命令 225
14.2.2  模塊配置文件 227
14.3  包的定義 229
14.3.1  包的聲明 229
14.3.2  包的成員 232
14.3.3  默認(rèn)包 232
14.4  包之間相互調(diào)用 232
14.4.1  import語句 233
14.4.2  import as語句 233
14.5  本章小結(jié) 235
第15章  常用標(biāo)準(zhǔn)包 236
15.1  core包 237
15.2  random包 238
15.2.1  Random類 238
15.2.2  Random使用 238
15.3  time包 239
15.3.1  定時(shí)器 239
15.3.2  周期性定時(shí)器 240
15.3.3  獲取時(shí)間的詳細(xì)信息 240
15.3.4  同一時(shí)間在不同時(shí)區(qū)的墻上時(shí)間 241
15.3.5  從字符串中解析得到時(shí)間 242
15.4  os包 242
15.4.1  獲取各類系統(tǒng)信息 243
15.4.2  文件內(nèi)容相關(guān)操作 244
15.4.3  文件信息相關(guān)操作 245
15.4.4  進(jìn)程相關(guān)信息操作 246
15.4.5  進(jìn)程start及相關(guān)函數(shù) 247
15.5  io包 248
15.5.1  StringStream 249
15.5.2  FileStream 252
15.5.3  Console 254
15.6  log包 255
15.6.1  SimpleLogger 255
15.6.2  根據(jù)日志級別輸?shù)轿募?257
15.7  JSON包 258
15.7.1  JsonValue 259
15.7.2  JSON中轉(zhuǎn)義字符處理 264
15.8  serialization包 265
15.8.1  Serializable 265
15.8.2  DataModel 266
15.8.3  DataModelStruct 267
15.8.4  HashSet和HashMap序列化 270
15.9  regex包 272
15.9.1  regex 272
15.9.2  Matcher 274
15.9.3  MatchData 277
15.9.4  RegexOption 279
15.10  url包 280
15.10.1  url包主要接口 280
15.10.2  URL 280
15.10.3  Form 281
15.11  本章小結(jié) 282
第16章  單元測試 283
16.1  什么是單元測試 283
16.2  修飾器宏介紹 284
16.3  編譯與運(yùn)行測試 284
16.4  修飾類的使用 286
16.4.1  @Test修飾器 286
16.4.2  @Test修飾Top-level函數(shù)的使用 288
16.5  自定義邏輯函數(shù)的使用 289
16.6  模塊測試和包測試 291
16.7  本章小結(jié) 293
     
高  級  篇
第17章  跨語言互操作 297
17.1  與C語言互操作 297
17.1.1  倉頡調(diào)用C函數(shù) 297
17.1.2  倉頡與C類型映射 300
17.1.3  C調(diào)用倉頡函數(shù) 302
17.1.4  通過FFI操作SQLite數(shù)據(jù)庫 303
17.1.5  通過FFI操作MongoDB數(shù)據(jù)庫 309
17.2  與Python語言互操作 315
17.2.1  編譯Python源碼獲取動(dòng)態(tài)庫 316
17.2.2  Python的動(dòng)態(tài)庫查找策略 317
17.2.3  Python庫的導(dǎo)入和加載 317
17.2.4  PythonBuiltins內(nèi)建函數(shù)類 319
17.2.5  倉頡與Python類型映射 322
17.2.6  倉頡與Python的注冊回調(diào) 333
17.3  本章小結(jié) 337
第18章  并發(fā)編程 338
18.1  并發(fā)與并行 338
18.2  線程和多線程模型 339
18.3  創(chuàng)建一個(gè)倉頡線程 340
18.4  等待線程結(jié)束并獲取返回值 341
18.4.1  getResult函數(shù)返回值 343
18.4.2  設(shè)置阻塞結(jié)果返回的時(shí)間 343
18.5  線程睡眠指定時(shí)長 344
18.6  線程的同步機(jī)制 344
18.6.1  原子操作 345
18.6.2  可重入互斥鎖 348
18.6.3  Monitor 350
18.6.4  MultiConditionMonitor 352
18.6.5  synchronized關(guān)鍵字 354
18.7  本章小結(jié) 356
第19章  元編程 357
19.1  宏 358
19.1.1  宏的定義 358
19.1.2  宏的導(dǎo)入 359
19.1.3  非屬性宏 360
19.1.4  屬性宏 362
19.1.5  嵌套宏 364
19.2  Tokens 368
19.2.1  Token類型 368
19.2.2  Tokens類型 371
19.2.3  quote表達(dá)式 372
19.3  元編程案例 374
19.3.1  使用宏優(yōu)化遞歸 374
19.3.2  使用宏打印任意類型 376
19.4  本章小結(jié) 379
第20章  網(wǎng)絡(luò)編程 380
20.1  網(wǎng)絡(luò)參考模型 380
20.1.1  OSI/RM參考模型 380
20.1.2  TCP/IP參考模型 381
20.2  TCP協(xié)議 384
20.2.1  TCP協(xié)議特點(diǎn) 384
20.2.2  TCP報(bào)文段 385
20.2.3  TCP工作流程 386
20.3  Socket編程 388
20.3.1  Socket概念 388
20.3.2  創(chuàng)建TCP服務(wù)器端 389
20.3.3  創(chuàng)建TCP客戶端 391
20.4  Socket案例:多人聊天室 393
20.4.1  創(chuàng)建群聊服務(wù)器端 394
20.4.2  創(chuàng)建群聊客戶端 399
20.5  HTTP協(xié)議 404
20.5.1  HTTP協(xié)議介紹 404
20.5.2  創(chuàng)建HTTP服務(wù)器端 406
20.5.3  創(chuàng)建HTTP客戶端 411
20.6  HTTP案例:MVC博客 413
20.6.1  博客效果介紹 413
20.6.2  創(chuàng)建項(xiàng)目工程 415
20.6.3  創(chuàng)建博客服務(wù)器 416
20.6.4  創(chuàng)建頁面控制器 417
20.6.5  創(chuàng)建數(shù)據(jù)層 419
20.6.6  創(chuàng)建數(shù)據(jù)服務(wù)層 423
20.6.7  實(shí)現(xiàn)數(shù)據(jù)加載與頁面綁定 426
20.7  本章小結(jié) 432
附錄A  操作符 433
  
IV
V
 
 

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號