# 5.常量声明
- final
- const修饰符
const值不变, 一开始就得赋值
final 可以开始不赋值, 只能赋一次; 而final不仅由const的编译时常量的特性, 最重要的它是运行时永远不改变的量, 请使用final或const修饰它, 而不是使用var或其他变量类型
final a = new DataTime.now()
print(a)
const a = new DataTime.now() // 报错
1
2
3
4
2
3
4
区别: final 可以开始不赋值, 只能赋一次; 而final不仅由const的编译时常量的特性, 最重要的它是运行时常量, 并且final是惰性初始化, 即在运行时第一次使用才初始化
const 只能赋值字面量, 而final可以赋值函数返回值, 变量, 以及字面量