前言
学习之路需深耕细作,切勿轻视任一知识点,因其存在必蕴含深意
- 标识符,如同我们为事物命名的标签,是程序员在编程时为变量、函数、类等元素赋予的唯一身份。
- 关键字,如同编程语言的指令集,指挥着程序的运行流程。
标识符
命名规范
1. 唯一性
- 在同一个作用域内,标识符必须是唯一的,以避免命名冲突。
2. 命名规则
- 标识符的命名通常遵循一定的规则,如只能包含字母、数字、下划线和美元符号,且不能以数字开头。
3. 大小写敏感
- 在大多数编程语言中,标识符是大小写敏感的,即
myName和myname被视为两个不同的标识符。
常见命名形式
1. 帕斯卡命名法
- 定义:每个单词的首字母大写,其余字母小写。
- 示例:
MyClass、HelloWorld、UserName
2. 驼峰命名法
- 定义:第一个单词的首字母小写,后续单词的首字母大写,其余字母小写。
- 示例:
myFunction、userProfile、userName
3. 下划线命名法
- 定义:所有单词均使用小写字母,单词之间使用下划线分隔。
- 示例:
my_function、user_profile、user_name
关键字
关键字分类
注意:不建议硬记,实际开发中会熟能生巧
- 类定义与继承
| 关键字 | 描述 |
|---|---|
| abstract | 定义抽象类 |
| class | 定义类 |
| extends | 指定一个类的超类 |
| implements | 指定一个类实现的接口 |
| mixin | 定义一个 mixin(在 Dart 2.1 中引入,原表格未列出,但它是类定义的一部分) |
- 构造函数与工厂方法
| 关键字 | 描述 |
|---|---|
| const | 定义编译时常量 |
| factory | 定义一个工厂构造函数 |
| new | 创建对象的构造函数(Dart 2.12+ 中可选,但在某些情况下仍然有用) |
- 类型与变量
| 关键字 | 描述 |
|---|---|
| as | 类型转换 |
| covariant | 指定重写方法可以有更具体的类型 |
| dynamic | 动态类型(在运行时确定类型) |
| final | 定义不可变的变量 |
| var | 定义一个变量(具有动态类型,但通常用于局部变量以推断类型) |
| typedef | 定义一个函数类型别名 |
| void | 表示没有返回值的函数 |
- 异常处理
| 关键字 | 描述 |
|---|---|
| try | 尝试执行一段代码,并捕获可能发生的异常 |
| catch | 捕获异常 |
| finally | 无论是否发生异常,都执行的代码块 |
| rethrow | 重新抛出当前捕获的异常 |
5.控制流
| 关键字 | 描述 |
|---|---|
| assert | 断言表达式(用于调试) |
| break | 退出循环 |
| continue | 跳过循环中的当前迭代 |
| if | 条件语句 |
| else | if 语句的替代分支 |
| switch | switch 语句 |
| case | switch 语句中的一个分支 |
| default | switch 语句中的默认分支 |
| for | for 循环 |
| while | while 循环 |
| do | do-while 循环(Dart 中没有直接的 do-while 语法,但可以通过其他方式模拟) |
6.异步编程
| 关键字 | 描述 |
|---|---|
| async | 定义一个异步函数或方法 |
| await | 等待一个异步操作的结果 |
| sync* | 定义一个同步生成器函数(注意:这实际上不是用于异步编程的关键字,而是用于同步迭代器的,但在此分类中为了完整性而列出,通常与 yield 一起使用在同步上下文中) |
| async* | 定义一个异步生成器函数(原表格未列出,但它是异步编程的一部分) |
| yield | 生成一个值给调用者(在生成器函数中,无论是同步还是异步) |
| yield* | 委托给另一个生成器函数(无论是同步还是异步) |
7.其他
| 关键字 | 描述 |
|---|---|
| assert | (已在上面的“控制流”中列出,但也可以视为一种调试或验证机制) |
| deferred | 延迟加载库 |
| export | 导出库中的公共成员(原表格未列出,但它是与库相关的关键字) |
| external | 定义一个外部函数或变量 |
| get | 定义一个 getter 方法 |
| is | 类型检查运算符 |
| is! | 类型非检查运算符 |
| library | 定义一个库 |
| part | 定义一个库的一部分 |
| set | (已弃用的集合字面量关键字,现应使用 {}) |
| super | 调用超类的方法或访问其属性 |
| this | 当前对象的引用 |
| with | 混合多个 mixin 到一个类中 |
| null | 空值 |
| false | 布尔值 false |
| true | 布尔值 true |
总结
在编程里,标识符和关键字非常重要。标识符是你给代码里的元素起的名字,要起得容易懂、好维护,还要遵守一些规则。关键字是编程语言的指令,它们控制程序的运行,像搭建程序的骨架一样。
标识符要独一无二,符合规则,还区分大小写。而关键字是语言自带的,不用背,多用用就熟了。它们一起让程序能跑起来,实现各种功能。