模式切换
关键字
Dart 提供了一组保留关键字,用于定义语言的基本结构和语法。以下是关键字的分类及其作用:
声明相关的关键字
这些关键字用于声明变量、类、函数、枚举等。
变量声明
var
:声明变量,可以自动推断类型。final
:声明运行时不可更改的变量(运行时常量)。const
:声明编译时不可更改的变量(编译时常量)。late
:声明稍后初始化的变量,常用于延迟初始化。
示例:
dartvar name = 'Dart'; // 自动推断为 String 类型 final age = 30; // 一旦赋值不可更改 const pi = 3.14; // 编译时常量 late String description; // 延迟初始化
类与对象
class
:声明类。abstract
:定义抽象类。extends
:表示继承父类。implements
:实现接口。with
:表示混入(Mixin)。
示例:
dartabstract class Animal { void eat(); } class Dog extends Animal { @override void eat() { print('Dog is eating'); } }
枚举
enum
:定义枚举类型。
示例:
dartenum Color { red, green, blue }
控制流相关的关键字
这些关键字用于控制代码的执行流程。
条件控制
if
、else
:条件语句。switch
、case
、default
:选择语句。
示例:
dartif (true) { print('Condition is true'); } else { print('Condition is false'); } var color = 'red'; switch (color) { case 'red': print('It is red'); break; default: print('Unknown color'); }
循环控制
for
、while
、do
:循环语句。break
:跳出循环或 switch。continue
:跳过当前循环的剩余部分,直接进入下一次循环。
示例:
dartfor (var i = 0; i < 5; i++) { if (i == 3) continue; print(i); // 输出 0, 1, 2, 4 }
异常控制
try
、catch
、finally
:异常处理。throw
:抛出异常。
示例:
darttry { throw Exception('An error occurred'); } catch (e) { print(e); } finally { print('This always runs'); }
函数相关的关键字
这些关键字用于定义和操作函数。
定义函数
void
:声明无返回值的函数。return
:用于返回值。
示例:
dartvoid sayHello() { print('Hello'); } int add(int a, int b) { return a + b; }
异步函数
async
:标记异步函数。await
:等待异步操作完成。yield
:生成一个值,用于生成器函数。
示例:
dartFuture<void> fetchData() async { var data = await Future.delayed(Duration(seconds: 1), () => 'Data loaded'); print(data); }
类型相关的关键字
动态类型
dynamic
:声明动态类型,类型在运行时确定。var
:自动推断类型。
静态类型
- 使用显式类型(如
int
、String
等)声明变量。
示例:
dartdynamic x = 'Hello'; // 类型可变 var y = 42; // 类型推断为 int String name = 'Dart'; // 明确声明类型
- 使用显式类型(如
其他关键字
访问控制
this
:引用当前对象。super
:调用父类的方法或构造函数。
示例:
dartclass Parent { void greet() { print('Hello from Parent'); } } class Child extends Parent { @override void greet() { super.greet(); // 调用父类方法 print('Hello from Child'); } }
特殊用途
new
:创建对象(可选,通常省略)。is
:类型检查。as
:类型转换。null
:表示空值。
示例:
dartvar obj = 'Hello'; if (obj is String) { print('It is a String'); }
其他
import
、export
:用于引入和导出库。assert
:断言,用于调试。
示例:
dartint number = 10; assert(number > 0, 'Number must be positive');