dart 语言中的 常量 与 变量
1. 常量
常量一经赋值,不可改变其值。
1.1 const 定义的常量
const
是dart关键字,用于定义常量,其定义格式为:
const Typename valName = value;
例如:
const String great = 'Hello Word!';
1.2 final 定义的常量
const
是dart关键字,用于定义常量,其定义格式为:
final Typename varName = value;
例如:
final String great = 'Hello Word!';
1.3 常量名
一般来说,任意合法标识符都可以作为常量名。但是我们更倾向于对于一些专用的常量尽可能地采用全大写字母并且多个单词组成的常量名各个单词之间使用下划线分,例如:
const double PI = 3.14;
1.3 两种常量定义方式的区别
final
关键字声明的变量可以不用先赋值,但是const
关键字声明的变量必须在声明时进行赋值,否则编译器将对没有赋值的变量进行报错。
2. 变量
2.1 变量的声明
变量在初次赋值后,仍然可以任意改变其值。在dart语言中,声明变量与JavaScript中声明变量类似,也可以使用var
进行声明,其格式为:
var varName = value;
例如:
var a = 0; var b = '你好,世界!';
这里我们并没有指定变量的数据类型,因为在dart语言中,使用var
声明的变量类型将被自动推断出来。比如在上面的代码中,变量a
被自动地推断为int
,而变量b
则将会自动地被推断为`String’。
使用 var
声明变量是当前在多个强类型语言中流行的语法糖写法,实际上如果完整地声明一个变量应该使用以下语法格式:
vartype varName = value;
例如:
String sentence = 'Hello Word!'; int a = 0; double b = 2.7;
如果声明地是一个不限于一个单一类型对象,则使用Object
或者dynamic
来声明,例如:
dynamic c = 'some infos.'
2.2 变量的初始值
如果变量直接赋值了当然就是被赋的值,但是dart语言中的变量也可以先声明、后赋值,例如:
int a;
这里仅仅声明了a
是一个int
类型的变量,由于未初始化,它的值为null
。在dart语言中,所有未被初始化的变量,他们的值都是null
。因此这时:
a == null; // true