变量是“存储器中的命名空间”,它用于存储值。换句话说,变量用作为程序中值的容器。变量的名称也称为标识符。标识符的命名规则如下:
• 标识符不能是关键字。
• 标识符可以包含字母、数字、下划线()和美元($)符号四种中的任意组合。
• 标识符不能包含除下划线()和美元($)符号以外的任何特殊字符以及空格space。
• 变量名称不能以数字开头。
变量的语法
在使用变量之前必须先声明变量。Dart使用var关键字来标识一个变量。声明变量的语法如下所示:
var name = 'smith';
art中的所有变量都存储对值的引用,而不是包含该值。name变量包含对String对象的引用,其值为"Smith"。
Dart通过在变量名前加上数据类型前缀来支持类型检查。类型检查确保变量仅包含特定于数据类型的数据。下面给出了相同的语法:
void variable(){
String name = 'Maxsu';
int number = 99;
//下面这样的语法是错误的,编译的时候就会爆红报错:
String str = 1;
}
关于变量默认值:
未初始化的变量的初始值为null。即使是具有数字类型的变量的初始值也是null,因为数字与Dart中的其他变量一样,它们都是对象,也就是说未经初始化的数字 (int/double)、字符串(String)、布尔值 (bool)、数组(list)、集合(Set)、映射(Map)变量其默认值统统都是null。以下示例说明了这个情况:
String str; int data;
bool Boolean;
double doubleData;
print("未初始化的int数据的原始值data = ${data},\n未初始化的字符串的原始值str= ${str},\n为初始化的布尔值Boolean =${Boolean},\n未初始化的浮点数doubleData = ${doubleData}");
运行结果如下:
dynamic 关键字
声明没有未指定静态类型的变量则会隐式声明为 dynamic 。也可以使用dynamic关键字代替var关键字声明变量。
dynamic x = "tom";
print(x);
final和Const
final和const关键字用于声明常量。在Dart中不能修改使用final或const关键字声明变量的值。这些关键字可以与变量的数据类型一起使用,也可以与var关键字一起使用。
const关键字用于表示编译时常量。使用const关键字声明的变量是隐式final。
final和Const关键字语法:
final variable_name = "variable_name";
final data_type = false;
const variableName = 3.14159265;
const dataType = 77;
print("variable_name==${variable_name},\ndata_type==${data_type},\nvariableName==${variableName},\ndataType==${dataType}");
运行结果如下:
final和const关键字修饰的变量不能被修改或重新赋值,只要执行被修改或重新赋值做操,系统编译的时候就会爆红报错。另外final和const关键字修饰的变量必须完成初始化,否则也会爆红报错: