入门篇 第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退出