变量:变量用来存贮引用
1、声明变量: 变量类型 变量名 [ = value ];
var age = 23;
如上代码,使用var来声明一个age变量,并初始化值为23,age被推断成int类型;var声明的变量可以被赋值为任何类型,一旦被赋值后,类型就已经确定,再次赋值不能修改值的类型
var name = "leg";
name = 23; //将会报错
如果变量的类型不限制于单一类型,请使用dynamic或Object来声明
dynamic name = "leg";
name = 24;
2、变量的默认值:未初始化的变量将被默认赋值未null,包括数字类型的变量,
int a;
print(a); // null
3、final 和const声明的变量:如果你在第一次初始化变量后就不会改变该变量的值,请使用final或const来声明此变量,(Const 变量是隐式的final)
final name = "Jack"; //name被推断成String类型
final int age = 23;
name = "Tome"; //报错,final修饰的变量不能被重新赋值
一个final的顶级变量或者类变量(实例变量)在第一次使用的时候被初始化
final name = "tom"; //作为顶级变量
class Dog {
final name; //实例变量
Dog(this.name); //在初始化实例时被赋值
}
final或const声明局部变量时,必须在声明的时候就赋值,否则编译不通过
final与const后可接变量类型,var除外,并且建议使用变量类型
final int age = 23;
final var name = "sss"; //报错
使用const修饰的变量为编译时常量,如果const修饰的变量是class级别,请使用static const,并且在声明的地方设置变量的值
class Student {
static const type = "person";
}
const关键字不只是声明常数变量,您也可以使用它来创建常量值,以及声明创建常量值的构造函数,任何变量都可以有一个常量值。
var arr = const [];
arr.add(23);
注意:这里var arr = const [];是指[]这个集合为常量,声明时就已经确定其元素的个数和对象,不能添加和删除,修改里面的元素。而变量arr是可以重新被赋值的。