圖解倉頡編程:基礎篇
劉玥
相關主題
商品描述
《圖解倉頡編程:基礎篇》以圖解的形式,通過豐富的示例和簡明的圖表,以通俗易懂的方式闡釋了倉頡編程語言的核心基礎 知識。
《圖解倉頡編程:基礎篇》共15章,包括倉頡編程語言概述、變量與基本數據類型、操作符、流程控制、函數、面向對象編程 (上)、面向對象編程(下)、enum 類型、模式匹配、函數高級特性、泛型、基礎 Collection 類型、包管理、擴 展、標準庫中包的應用。其中,“面向對象編程(上)”和“面向對象編程(下)”這兩章涉及一系列重要的概 念,包括類、對象、封裝、繼承、多態、重寫、抽象類和接口等,本書通過一個小型的電商項目貫穿這兩章,詳細闡明瞭這些概念。
《圖解倉頡編程:基礎篇》適合對倉頡編程語言感興趣的初學者閱讀。
作者簡介
刘玥,九丘教育 CEO,曾在高校任教十余年,具有丰富的课堂教学经验,尤其擅长讲授
程序设计、算法类课程。
张荣超,九丘教育教学总监、华为开发者专家(HDE)、华为首届 HarmonyOS 开发者创新大赛优秀导师、 OpenHarmony 项目群技术指导委员会(TSC)委员。
目錄大綱
第 1 章 倉頡編程語言概述 1
1.1 倉頡編程語言簡介 2
1.2 我的第 一個倉頡程序: Hello World 3
1.2.1 開發環境搭建 3
1.2.2 Hello World 3
1.3 倉頡程序結構 5
第 2 章 變量與基本數據類型 7
2.1 變量的概念 8
2.2 變量的聲明和使用 9
2.2.1 變量的聲明 9
2.2.2 變量的使用 12
2.3 基本數據類型 14
2.3.1 整數類型 14
2.3.2 浮點類型 15
2.3.3 布爾類型 18
2.3.4 字符類型 18
2.3.5 字符串類型 19
2.3.6 元組類型 24
2.3.7 區間類型 26
2.3.8 Unit 類型 27
2.3.9 Nothing 類型 28
2.4 小結 28
第 3 章 操作符 31
3.1 概述 32
3.2 算術操作符 32
3.2.1 運算規則 33
3.2.2 算術運算對類型的要求 35
3.2.3 類型推斷 36
3.2.4 數值類型的類型轉換 37
3.3 自增和自減操作符 38
3.4 關系操作符 39
3.4.1 運算規則 39
3.4.2 數值類型的關系運算 40
3.4.3 字符類型及字符串類型的關系運算 40
3.4.4 布爾類型及 Unit 類型的關系運算 41
3.5 邏輯操作符 42
3.6 位操作符 43
3.7 賦值操作符和復合賦值操作符 45
3.7.1 賦值操作符 45
3.7.2 復合賦值操作符 46
3.8 操作符的優先級和結合性 46
3.9 小結 47
第 4 章 流程控制 49
4.1 概述 50
4.2 順序結構 52
4.3 分支結構 53
4.3.1 單分支的 if 表達式 53
4.3.2 雙分支的 if 表達式 55
4.3.3 嵌套的 if 表達式 56
4.4 循環結構 61
4.4.1 while 表達式 62
4.4.2 do-while 表達式 65
4.4.3 for-in 表達式 68
4.4.4 break 表達式 72
4.4.5 continue 表達式 73
4.4.6 循環的嵌套 74
4.5 各種流程控製表達式的類型 76
4.5.1 if 表達式的類型 76
4.5.2 其他流程控製表達式的類型 78
4.6 小結 79
第 5 章 函數 81
5.1 函數的概念 82
5.2 函數的定義 82
5.2.1 函數定義的方式 82
5.2.2 函數參數 83
5.2.3 函數體 84
5.2.4 函數返回值 86
5.3 函數的調用和執行 87
5.3.1 函數調用的方式 87
5.3.2 參數傳遞 87
5.3.3 函數調用的執行過程 90
5.4 變量的作用域 92
5.4.1 全局變量的作用域 92
5.4.2 局部變量的作用域 93
5.4.3 同名變量 95
5.5 函數的重載 96
5.6 遞歸函數 97
5.7 小結 100
第 6 章 面向對象編程(上) 101
6.1 概述 102
6.2 類的定義和對象的創建 102
6.2.1 成員變量 105
6.2.2 成員函數 109
6.2.3 構造函數 110
6.2.4 成員訪問 114
6.2.5 類是引用類型 116
6.2.6 組織代碼 118
6.3 封裝 120
6.3.1 訪問控制 121
6.3.2 成員屬性 123
6.4 繼承 126
6.4.1 定義並繼承父類 127
6.4.2 重寫和重定義 135
6.5 多態 141
6.5.1 子類型天然是父類型 141
6.5.2 通過繼承實現多態 142
6.6 使用組合實現代碼復用 145
6.7 struct 類型 147
6.8 小結 151
第 7 章 面向對象編程(下) 153
7.1 抽象類 154
7.1.1 通過抽象函數和抽象類實現多態 155
7.1.2 抽象類及其成員 156
7.1.3 抽象類的繼承規則 159
7.2 接口 161
7.2.1 通過接口實現多態 161
7.2.2 定義和實現接口 164
7.2.3 接口的默認實現 168
7.2.4 接口的繼承 171
7.2.5 Any 類型 173
7.2.6 面向接口編程示例 174
7.3 子類型關系 178
7.4 小結 179
第 8 章 enum 類型 181
8.1 概述 182
8.2 enum 類型的定義 182
8.3 enum 值的創建 183
8.4 enum 值的模式匹配 184
8.5 Option 類型 186
8.5.1 Option 類型的定義 186
8.5.2 Option 值的創建 186
8.5.3 Option 值的解構 188
8.5.4 使用 as 操作符進行類型轉換 191
8.5.5 Option 類型使用示例 194
8.6 小結 198
第 9 章 模式匹配 201
9.1 概述 202
9.2 match 表達式 202
9.2.1 包含待匹配值的 match 表達式 202
9.2.2 不含待匹配值的 match 表達式 204
9.2.3 match 表達式的類型 206
9.3 模式 208
9.3.1 常量模式 208
9.3.2 通配符模式 209
9.3.3 綁定模式 209
9.3.4 類型模式 210
9.3.5 元組模式 211
9.3.6 枚舉模式 212
9.3.7 模式的 Refutability 214
9.4 模式的其他用法 216
9.4.1 在變量聲明中使用 irrefutable 模式 216
9.4.2 在 for-in 表達式中使用 irrefutable 模式 217
9.4.3 在 if-let 表達式中使用模式 218
9.4.4 在 while-let 表達式中使用模式 220
9.5 小結 221
第 10 章 函數高級特性 223
10.1 函數是“一等公民” 224
10.1.1 函數類型 224
10.1.2 函數作為變量值 225
10.1.3 函數作為實參 226
10.1.4 函數作為返回值 227
10.2 lambda 表達式 228
10.2.1 lambda 表達式的定義 228
10.2.2 lambda 表達式的使用 229
10.2.3 註意事項 231
10.3 嵌套函數 233
10.4 閉包 236
10.4.1 閉包的概念 236
10.4.2 閉包的工作原理和特點 238
10.4.3 使用限制和註意事項 241
10.5 函數重載決議 243
10.6 操作符重載函數 245
10.6.1 操作符重載的規則 245
10.6.2 操作符重載函數的定義和使用 246
10.7 mut 函數 248
10.7.1 struct 中的 mut 函數 249
10.7.2 interface 中的 mut 函數 250
10.7.3 mut 函數的使用限制 251
10.8 函數類型的子類型關系 252
10.9 調用函數時的語法糖 253
10.9.1 尾隨 lambda 254
10.9.2 flow 表達式 254
10.9.3 變長參數 256
10.10 小結 258
第 11 章 泛型 259
11.1 概述 260
11.2 泛型函數 261
11.3 泛型類型 263
11.3.1 泛型 class 263
11.3.2 泛型 struct 265
11.3.3 泛型 enum 266
11.3.4 泛型 interface 267
11.3.5 泛型類型的子類型關系 268
11.3.6 類型別名 269
11.4 泛型約束 270
11.5 泛型接口應用示例 273
11.5.1 泛型接口 Equatable
11.5.2 泛型接口 Comparable
11.6 小結 278
第 12 章 基礎 Collection 類型 279
12.1 概述 280
12.2 Array 280
12.2.1 Array 的創建 280
12.2.2 Array 元素的訪問 282
12.2.3 Array 元素的修改 286
12.2.4 Array 是引用類型 290
12.3 ArrayList 291
12.3.1 ArrayList 的創建 291
12.3.2 ArrayList 元素的訪問和修改 292
12.3.3 ArrayList 元素的添加和刪除 294
12.3.4 ArrayList 的容量管理 300
12.4 HashSet 303
12.4.1 HashSet 的創建 304
12.4.2 HashSet 元素的訪問 305
12.4.3 HashSet 元素的添加和刪除 307
12.5 HashMap 309
12.5.1 HashMap 的創建 310
12.5.2 HashMap 元素的訪問 311
12.5.3 HashMap 元素的修改和添加 314
12.5.4 HashMap 元素的刪除 316
12.6 接口 Iterable 和 Iterator 317
12.7 用於 Collection 操作的高階函數 321
12.8 小結 324
第 13 章 包管理 327
13.1 概述 328
13.2 包的聲明 329
13.3 頂層聲明的可見性 329
13.3.1 頂層聲明的默認可見性 329
13.3.2 頂層聲明的 public 可見性 330
13.4 頂層聲明的導入 333
13.4.1 使用 import 導入其他包中的 public 頂層聲明 333
13.4.2 使用 import as 重命名 338
13.4.3 使用 public import 對導入的頂層聲明重導出 339
13.5 小結 340
第 14 章 擴展 343
14.1 概述 344
14.2 直接擴展 344
14.3 接口擴展 347
14.4 擴展的導出和導入 351
14.4.1 直接擴展的導出和導入 351
14.4.2 接口擴展的導出和導入 353
14.5 小結 356
第 15 章 標準庫中包的應用 359
15.1 概述 360
15.2 生成隨機數據 360
15.2.1 生成各種類型的隨機數據 360
15.2.2 生成指定範圍內的隨機整數 361
15.2.3 復現隨機數據 362
15.2.4 生成隨機數組 362
15.3 通用的數學操作 364
15.4 格式化輸出 366
15.5 字符串操作 370
15.6 小結 380