没有合适的资源?快使用搜索试试~ 我知道了~
仓颉编程语言语言规约.pdf
试读
382页
需积分: 0 9 下载量 178 浏览量
更新于2024-08-15
收藏 1MB PDF 举报
仓颉编程语言语言规约.pdf
仓颉编程语言语言规约
版本 0.22.17
华为技术有限公司
编译器与编程语言实验室
ii
目录
第一章 词法结构 1
1.1 标识符和关键字 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 分号和换行符 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 字面量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3.1 整数类型字面量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3.2 浮点数类型字面量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3.3 布尔类型字面量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3.4 字符串类型字面量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3.5 Rune 类型字面量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.4 操作符 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.5 注释 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
第二章 类型 13
2.1 不可变类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1.1 数值类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1.2 Rune 类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.1.3 Bool 类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.1.4 Unit 类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.1.5 Nothing 类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.1.6 String 类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.1.7 Tuple 类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.1.8 Range 类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.1.9 Function 类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.1.10 enum 类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.2 可变类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.2.1 Array 类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.2.2 VArray 类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.2.3 struct 类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.2.4 class 类型和 inteace 类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.3 类型转换 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.3.1 Value Types 之间的类型转换 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.3.2 class/inteace 之间的类型转换 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
iii
iv 目录
2.4 类型别名 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.4.1 类型别名定义的规则: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.4.2 类型别名的使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
2.5 类型间的关系 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.5.1 类型相等 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.5.2 子类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.5.3 最小公共父类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.5.4 最大公共子类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.6 类型安全 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
第三章 名字、作用域、变量、修饰符 57
3.1 名字 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.2 作用域 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.2.1 块 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.2.2 作用域级别 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.2.3 作用域原则 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.2.4 遮盖 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.3 变量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.3.1 变量的定义 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.3.2 变量的初始化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.4 修饰符 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
3.4.1 访问修饰符 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
3.4.2 非访问修饰符 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
第四章 表达式 71
4.1 字面量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.2 变量名和函数名 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
4.2.1 泛型函数名作为表达式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
4.3 条件表达式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.4 模式匹配表达式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
4.4.1 模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
4.4.2 模式的分类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
4.4.3 字符串、字节和 Rune 的匹配规则 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
4.4.4 Pattern Guards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
4.5 循环表达式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
4.5.1 for-in 表达式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
4.5.2 while 表达式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
4.5.3 do-while 表达式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
4.5.4 循环表达式总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
4.6 t 表达式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
4.7 控制转移表达式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
4.7.1 break 表达式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
目录 v
4.7.2 continue 表达式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
4.7.3 return 表达式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
4.7.4 throw 表达式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
4.8 数值类型转换表达式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
4.9 this 和 super 表达式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
4.10 spawn 表达式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
4.11 synchronized 表达式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
4.12 括号表达式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
4.13 后缀表达式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
4.13.1 成员访问表达式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
4.13.2 函数调用表达式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
4.13.3 索引访问表达式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
4.13.4 问号操作符 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
4.14 自增自减表达式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
4.15 算术表达式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
4.16 关系表达式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
4.17 type test 和 type cast 表达式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
4.17.1 is 操作符 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
4.17.2 as 操作符 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
4.18 位运算表达式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
4.19
区间表达式
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
4.20 逻辑表达式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
4.21 coalescing 表达式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
4.22 流表达式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
4.22.1 pipeline 操作符 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
4.22.2 composition 操作符 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
4.23 赋值表达式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
4.24 Lambda 表达式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
4.25 Quote 表达式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
4.26 宏调用表达式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
4.27 引用传值表达式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
4.28 操作符的优先级和结合性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
4.29 表达式的求值顺序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
第五章 函数 123
5.1 函数定义 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
5.1.1 函数修饰符 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
5.1.2 参数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
5.1.3 函数体 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
5.1.4 函数的返回类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
5.1.5 函数声明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
5.1.6 函数重定义 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
剩余381页未读,继续阅读
资源推荐
资源评论
5星 · 资源好评率100%
2019-07-13 上传
2024-06-23 上传
2024-06-23 上传
2024-06-22 上传
195 浏览量
2013-11-14 上传
184 浏览量
2021-10-07 上传
193 浏览量
2021-10-15 上传
2024-07-14 上传
198 浏览量
132 浏览量
2021-12-08 上传
2023-04-28 上传
2020-08-19 上传
140 浏览量
170 浏览量
111 浏览量
116 浏览量
2020-08-18 上传
2021-10-15 上传
资源评论
元素加燃
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于IronPython的股票技术分析系统详细文档+全部资料+高分项目.zip
- 基于PaddleNLP搭建评论观点抽取和属性级情感分析模型,并基于前后端分离式架构完成属性级情感分析Web系统搭建,通过细粒度情感分析帮助用户和商家更好决策。详细文档+全部资料+高分项目.zip
- 基于pyltp的工具中文依存句法的四大名著人物情节分析系统、实现了人物篇幅分析,故事发生地分析,主要人物情绪变化分析,人物互动情况分析.详细文档+全部资料+高分
- 基于Saprk的用户行为分析系统详细文档+全部资料+高分项目.zip
- 基于Qt的学生信息管理系统。教师端:支持增删查改,班级成绩分析。学生端:查看成绩。详细文档+全部资料+高分项目.zip
- 基于RT-Thread系统的空气质量分析仪详细文档+全部资料+高分项目.zip
- 基于spark streaming和kafka,hbase的日志统计分析系统详细文档+全部资料+高分项目.zip
- 基于Spring Boot的在线问卷调查系统,登录注册、调查问卷模板、创建调查问卷、在线编辑模板、社交网站分享问卷、问卷结果分析与统计(图表展示)以及个人中心等
- 基于Strom的日志实时流量分析主动防御(CCFirewall)系统详细文档+全部资料+高分项目.zip
- 基于SpringBoot Mybatis 的毕业生就业信息分析系统详细文档+全部资料+高分项目.zip
- 基于Spring+SpringMVC+Mybatis+redis+Vue+Swagger2小程序商城+(vue)微信商城+综合管理后台+网站商城+运营商平台+A
- 基于Strom的实时流量分析防火墙系统详细文档+全部资料+高分项目.zip
- 基于tfs2.2.16代码,添加注释和分析,学习分布式存储系统详细文档+全部资料+高分项目.zip
- 基于ThinkPhp5.0+Vue开发的一套新零售直播点播知识付费系统,销推广关系管理+营销+直播的知识类电商系统,能够快速积累客户、会员数据分析、智能转化客户
- 基于UIE的舆论情感分析Web系统,支持单文本属性级情感分析及上传txt文件进行批量情感分析,并支持分析结果的可视化展示。 技术栈:后端:FastAPI + U
- 基于thinkphp和mysq舆情分析系统,详细文档+全部资料+高分项目.zip
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功