入门篇
第1章仓颉语言简介
1.1仓颉语言的由来
1.2仓颉语言的特点
第2章仓颉开发准备(12min)
2.1安装仓颉工具链
2.1.1Linux
2.1.2Windows
2.2安装VS Code及仓颉插件
2.3仓颉插件的使用
2.3.1仓颉项目结构
2.3.2语言插件的使用
第3章第一个仓颉程序(6min)
3.1运行Hello World程序
3.2仓颉程序基本规则
3.3仓颉程序的编译
第4章基本数据类型与操作符(21min)
4.1标识符与关键字
4.1.1标识符
4.1.2关键字
4.2变量
4.3基本数据类型
4.3.1整数类型
4.3.2浮点类型
4.3.3布尔类型
4.3.4字符类型
4.3.5字符串类型
4.3.6Unit类型
4.3.7元组类型
4.3.8区间类型
4.3.9Noting类型
4.4基本数据类型转换
4.4.1数值类型之间的转换
4.4.2Char和UInt32 之间的转换
4.4.3类型判断
4.5操作符
4.5.1算术操作符
4.5.2逻辑操作符
4.5.3位操作符
4.5.4关系操作符
4.5.5赋值操作符
4.5.6操作符的优先级
第5章函数(23min)
5.1函数的定义
5.2参数及函数调用
5.3返回值类型
5.4函数体
5.5嵌套函数(局部函数)
第6章流程控制(7min)
6.1条件表达式
6.2循环表达式
6.3match表达式
第7章入门综合实例
7.1开发需求
7.1.1斐波那契数列
7.1.2要解决的问题
7.2解决思路
7.2.1问题分析
7.2.2递归函数
7.3示例代码
进阶篇
第8章struct类型(19min)
8.1长方体引发的思考
8.2struct类型的定义
8.3成员变量
8.4构造函数
8.4.1普通构造函数
8.4.2主构造函数
8.4.3自动生成的无参构造函数
8.5成员函数
8.6可见修饰符
8.7实例的创建与访问
8.8mut函数
8.9成员属性
8.9.1属性的定义
8.9.2属性的使用
第9章class类型(12min)
9.1定义
9.2成员变量
9.3构造函数
9.3.1普通构造函数
9.3.2主构造函数
9.3.3自动生成的无参构造函数
9.4成员函数
9.5成员属性
9.6可见性修饰符
9.7对象
9.7.1对象的创建与访问
9.7.2对象值的修改
9.8抽象类
9.9继承
9.9.1继承的定义
9.9.2覆盖和重定义
9.9.3super关键字
9.9.4成员可见性
第10章enum类型
10.1enum类型的定义
10.2enum类型的值
10.3enum类型的使用
10.4有参构造器
第11章接口(10min)
11.1为什么需要接口
11.2接口的定义
11.3接口的实现
11.3.1接口的通常实现
11.3.2接口的默认实现
11.4接口的继承
11.5类型的多接口实现
11.6典型的内置接口
11.6.1Any类型
11.6.2ToString接口
第12章泛型(17min)
12.1什么是泛型
12.2泛型接口
12.3泛型函数
12.4泛型约束
12.5泛型类型
12.5.1泛型class
12.5.2泛型struct
12.5.3泛型enum
12.5.4区间类型
第13章包管理
13.1包的声明
13.2顶层声明的可见性
13.3包的导出和编译
13.4包的导入
13.4.1import语句导入
13.4.2导入重命名
第14章扩展(6min)
14.1扩展的定义
14.2泛型扩展
14.3接口扩展
第15章基础集合类型(8min)
15.1Array
15.1.1Array的定义
15.1.2访问Array
15.1.3修改Array
15.1.4Array的高级用法
15.1.5字节数组字面量
15.2ArrayList
15.2.1ArrayList的定义
15.2.2访问ArrayList
15.2.3修改ArrayList
第16章函数的进阶用法(20min)
16.1函数重载
16.1.1函数重载的定义
16.1.2函数重载决议
16.2函数遮盖
16.3操作符重载
16.3.1操作符重载的必要性
16.3.2操作符重载的定义
16.3.3索引操作符
16.3.4可以被重载的操作符
16.4函数是第一类对象
16.4.1什么是第一类对象
16.4.2函数类型的定义
16.4.3函数作为参数
16.4.4函数作为变量
16.4.5函数作为返回值
第17章类型关系
17.1多态
17.2子类型关系
17.2.1继承带来的子类型关系
17.2.2实现接口带来的子类型关系
17.2.3元组类型的子类型关系
17.2.4函数类型的子类型关系
17.2.5预设子类型关系
17.2.6传递性带来的子类型关系
17.2.7泛型类型的子类型关系
17.3类型转换
17.3.1is操作符
17.3.2as操作符
17.4类型别名
第18章异常
18.1异常的定义
18.2异常处理
18.3自定义异常
18.4Option值的解构
18.4.1getOrThrow()函数
18.4.2??操作符
第19章基础类库
19.1格式化库
19.1.1整型、浮点型类型
19.1.2字符类型
19.2Console类
19.2.1ConsoleReader
19.2.2ConsoleWriter
19.3Random类
19.4数学库
19.4.1常数
19.4.2函数
19.5转换库
19.6base64包
19.7hex包
19.8时间库
19.8.1Month枚举
19.8.2DayOfWeek枚举
19.8.3Duration类
19.8.4TimeZone
19.8.5DateTime
19.8.6时间格式
第20章字符及字符串处理
20.1字符处理
20.2字符串处理
20.2.1字符串转数组
20.2.2指定位置字符获取
20.2.3子字符串获取
20.2.4字符查找
20.2.5子字符串查找
20.2.6字符串修整
20.2.7字符串分隔
20.2.8字符串判断
20.2.9字符串连接
20.2.10字符串替换与反转
20.3猜数字小游戏
第21章高级集合类型(10min)
21.1Hashable接口
21.2HashSet集合
21.2.1HashSet的定义
21.2.2访问HashSet
21.2.3修改HashSet
21.2.4HashSet的容量和元素个数
21.3HashMap集合
21.3.1 HashMap的定义
21.3.2访问HashMap
21.3.3修改HashMap
21.3.4其他常用函数
21.3.5综合应用示例
第22章模式匹配
22.1match表达式
22.1.1pattern guard
22.1.2match表达式类型
22.2模式
22.2.1常量模式
22.2.2通配符模式
22.2.3变量模式
22.2.4元组模式
22.2.5类型模式
22.2.6枚举模式
高级篇
第23章函数的高级用法(19min)
23.1Lambda表达式
23.1.1Lambda表达式的定义
23.1.2Lambda表达式的返回值
23.1.3Lambda表达式的调用
23.2闭包
23.2.1闭包的定义
23.2.2捕获变量的状态
23.2.3可变变量的闭包
23.3函数调用语法糖
23.3.1尾随闭包
23.3.2管道表达式
23.3.3组合操作符
第24章并发(18min)
24.1仓颉线程
24.1.1线程睡眠函数sleep
24.1.2创建仓颉线程
24.1.3等待线程结束并获取返回值
24.2同步
24.2.1数据竞争
24.2.2原子操作
24.2.3互斥锁
24.2.4监视器
24.2.5synchronized关键字
第25章文件处理
25.1FileInfo
25.2File
25.3Directory
25.4文件读写示例
第26章仓颉编译器(14min)
26.1编译演示代码
26.2编译选项
26.3条件编译
26.3.1使用方式
26.3.2内置编译条件
26.3.3自定义编译条件
26.3.4多条件编译
第27章仓颉调试器(26min)
27.1仓颉调试器演示代码
27.2调试版本的编译
27.3启动调试的方式
27.4调试命令
27.4.1断点
27.4.2观察点
27.4.3启动
27.4.4执行
27.4.5变量
27.4.6退出