共同点:
- 声明的类型可省略
- 初始化后不能再赋值
- 不能和var同时使用
例如:
const tmp = "arrom";// 相当于const String tmp = “arrom”
final var tmp1 ="test";//会报错
区别:
- 类级别常量,使用static const
- const可使用其他const常量的值来初始化其值
- 使用const赋值声明,const可省略
- 可以更改非final,非const变量的值,即使曾经具有const值
- const导致的不可变性是可以传递的
- 相同的const常量不会再内存中重复创建
- const需要是编译时常量
例如:
const a = 100;
const b = 200;
const c = a * b;//如果将a的声明变成var 则c会报错
const list = const [];//const 可以省略
const List ls = [1,2,4];
const list ls2 = [1,2,4];
print(identical(ls,ls2));//返回true
const dt = DtaTime.now();