图书目录

目录

第1章  引言 1

1.1  仓颉语言的起源 1

1.2  仓颉语言的特点 1

1.3  本书面向的读者 2

第2章  第1个仓颉程序 3

2.1  仓颉Hello World程序 3

2.2  编译和运行 4

2.2.1  在Ubuntu系统下编译运行 4

2.2.2  在Windows 10系统下开发仓颉程序 6

2.3  仓颉程序包含的元素 16

第3章  基本类型和运算符 18

3.1  常量和变量 18

3.1.1  常量 18

3.1.2  变量 21

3.2  数据类型 22

3.3  运算符 26

3.3.1  算术运算符 26

3.3.2  关系运算符 27

3.3.3  逻辑运算符 28

3.3.4  其他运算符 28

第4章  基本输入/输出和控制结构 31

4.1  基本输出函数 31

4.2  终端输入/输出 32

4.2.1  终端输入 33

4.2.2  终端输出 34

4.3  控制结构 35

4.3.1  顺序结构 35

4.3.2  选择结构 36

4.3.3  循环结构 40

第5章  函数 46

5.1  函数定义 46

5.1.1  一般函数定义 46

5.1.2  嵌套函数定义 50

5.1.3  重载函数定义 51

5.2  函数调用 51

5.2.1  一般函数调用 52

5.2.2  递归函数调用 54

5.3  函数高级特性 55

5.3.1  函数类型 55

5.3.2  函数类型作为变量类型 56

5.3.3  函数类型作为返回类型 56

5.3.4  函数类型作为形参类型 57

5.3.5  Lambda表达式 57

第6章  结构和枚举类型 59

6.1  结构类型 59

6.1.1  定义结构类型 59

6.1.2  创建使用结构 60

6.1.3  结构成员 61

6.1.4  访问控制 66

6.1.5  结构定义限制 68

6.2  枚举类型 69

6.2.1  枚举类型的基本用法 69

6.2.2  枚举类型的更多用法 72

6.2.3  Option类型 73

第7章  类和对象 76

7.1  定义类 76

7.2  创建使用类对象 77

7.3  类的成员 79

7.4  可见性和写限制 85

第8章  继承和接口 87

8.1  继承 87

8.1.1  定义派生类 87

8.1.2  继承中的构造函数 90

8.1.3  访问权限 91

8.1.4  重载、覆盖和重定义 93

8.2  接口 95

8.2.1  定义接口 95

8.2.2  接口继承 97

8.2.3  接口实现 98

8.2.4  Any接口 100

第9章  类型关系 102

9.1  类和子类型 102

9.2  接口和子类型 103

9.3  函数使用中的子类型 104

9.4  类型转换和类型判断 106

9.4.1  数值类型之间的转换 106

9.4.2  字符和整型之间的转换 107

9.4.3  is和as表达式 107

9.5  类型别名 108

第10章  泛型和常用集合类型 110

10.1  泛型 110

10.1.1  泛型类型 110

10.1.2  泛型函数 114

10.1.3  泛型约束 116

10.2  常用集合类型 118

10.2.1  Array 119

10.2.2  ArrayList 121

10.2.3  HashSet 122

10.2.4  HashMap 124

第11章  属性和扩展 126

11.1  属性 126

11.1.1  定义属性 126

11.1.2  使用属性 129

11.2  扩展 131

11.2.1  扩展的定义 131

11.2.2  扩展限制和使用 133

11.2.3  扩展的作用域 135

第12章  多线程和异常处理 138

12.1  多线程 138

12.1.1  创建线程 138

12.1.2  等待线程 139

12.1.3  线程同步 141

12.2  异常处理 151

12.2.1  异常类型 152

12.2.2  抛出和处理异常 153

第13章  包 158

13.1  声明包 158

13.2  包中顶层声明的可见性 160

13.3  包的导入 162

13.4  多包项目编译 165

13.5  main函数参数 168

第14章  自动微分 169

14.1  微分技术简介 169

14.2  简单的函数自动微分 170

14.3  可微类型 171

14.4  可微函数 172

14.4.1  顶层可微函数 172

14.4.2  非顶层可微函数 174

14.5  自动微分API 176

14.5.1  @Grad表达式 176

14.5.2  @ValWithGrad表达式 178

14.5.3  @AdjointOf表达式 178

14.5.4  stopGradient函数接口 179

14.6  高阶微分 180

第15章  元编程 181

15.1  元编程简介 181

15.2  元编程类型和引述表达式 182

15.2.1  Token类型 182

15.2.2  Tokens类型 183

15.2.3  引述表达式 185

15.3  宏 187

15.3.1  宏定义和调用 187

15.3.2  非属性宏 188

15.3.3  属性宏 189

15.3.4  宏嵌套 191

15.4  元编程示例 193

附录A  仓颉语言中的关键字 196

附录B  仓颉语言中的运算符 197

附录C  仓颉语言提供的包及主要功能说明 199