Dart中final和const的区别

发布于 17 天前  0 次阅读


final修饰的变量,必须在定义时将其初始化,其值在初始化后不可改变;
const用来定义常量。

区别:
constfinal更加严格。
final只是要求变量在初始化后值不变,但通过final,我们无法在编译时(运行之前)知道这个变量的值;
const修饰的是编译时常量,我们在编译时就已经知道了它的值,显然,它的值也是不可改变的。

final

只能被设一次值,在声明处赋值,值和普通变量的设值一样,可以是对象、字符串、数字等,用于修饰值的表达式不变的变量;

final int a = 1;

const

只能被设一次值,在声明处赋值,且值必须为编译时常量;用于修饰常量

const int a = 1;
const int timeStamp = new DateTime.now(); //报错,因为编译时无法访问运行时的内容(即DateTime)

访问运行时的内容,可以采取final

final timeStamp = new DateTime.now();

平平无奇的大学在读本科生