文章目录
- 一、概述
- 二、详解
- 1. 变量的声明
- 2. 常量变量
- 3.`late` 延迟初始化变量
- 4. 变量的命名规则
- 三、总结
一、概述
“不抱有希望的人生是毫无意义的。” —— 阿卜杜勒·阿齐兹
Dart中的变量是存储值的容器。它们可以是数字、字符串、布尔值或其他数据类型。变量在定义时必须指定类型,或者可以使用类型推断,Dart将根据初始值自动推断变量类型。
二、详解
1. 变量的声明
Dart 中变量的定义和初始化有三种方法:使用 var
关键字,使用数据类型,使用 dynamic
关键字。
- 使用
var
关键字定义变量:
var personName = 'John Doe';
var personAge = 25;
上面的代码中,我们使用 var
关键字定义了两个变量 personName
和 personAge
,分别存储字符串 ‘John Doe’ 和整数 25。Dart 会根据变量赋的值自动推断出该变量的类型,在这里 personName
为字符串类型,personAge
为整数类型。
请注意,使用 var
关键字定义的变量的类型一旦确定,不能再改变,例如不能将字符串变量 personName
赋值为整数,否则会得到错误提示:
"A value of type ‘int’ can’t be assigned to a variable of type ‘ String '”
- 使用数据类型定义变量:
String personName = 'John Doe';
int personAge = 25;
上面的代码中,我们使用数据类型显式定义了两个变量,分别为字符串类型的 personName
和整数类型的 personAge
。与使用 var
关键字定义变量类似,Dart 也不允许在之后更改变量的类型。
- 使用
dynamic
关键字定义变量:
使用 dynamic
关键字定义变量,表示该变量可以存储任何类型的数据。比如:
dynamic myVar = "Hello World";
myVar = 100;
myVar = true;
但是,除非必要,否则不推荐使用 dynamic
类型。因为,这样做会导致代码难以维护,特别是在大型应用程序中。在 Dart 中,默认情况下,会根据存储的数据类型自动推断变量的类型,以使代码易于维护。
2. 常量变量
Dart 中的 final 和 const 两个关键字用于声明常量。
- final 关键字声明的变量只能被赋值一次,而且必须在声明时或构造函数中赋值。
例如:
final name = 'John Doe';
name = 'Jane Doe'; // Error: a final variable can only be set once.
- const 关键字声明的变量是编译时常量,它的值在编译时就已经确定。它是一种更严格的常量,只能用于声明编译时常量,不能用于声明运行时常量。
例如:
const pi = 3.14;
pi = 3.14159; // Error: a constant variable cannot be changed.
3.late
延迟初始化变量
late
关键字用于标识一个变量为延迟初始化变量。这意味着,变量的值在需要时才会被初始化,而不是在声明时立即初始化。
使用 late
关键字定义一个变量的语法如下:
late MyType myVariable;
例如:
late int x;
void main() {
x = 10;
print(x); // 10
}
因为变量是在需要时才初始化的,所以在使用前必须对其进行初始化,否则会抛出一个错误。
注意:不能对 late
变量使用 final
或 const
关键字,因为它们在声明时必须立即初始化。
4. 变量的命名规则
Dart 中变量命名遵循以下规则:
- 变量名只能包含字母,数字,下划线和美元符号($)。
- 变量名不能以数字开头。
- 变量名区分大小写。
- 变量名不能与 Dart 中的保留字相同,例如 int、var、dynamic 等。
- 使用驼峰命名法,即把每个单词的首字母都大写,比如:firstName、lastName。
三、总结
这次我们学习了如何在Dart中定义变量,建议你结合之前提到的DartPad在线环境中学习掌握。