在Dart中,const和final关键字之间有什么区别?
当前回答
所有这些答案我都可以用简洁的方式描述。
const list = [1, 2, 3];
变量/标识符和值都是const。Like - const list = const [1,2,3] 这就是为什么他们不允许被重新分配。 很适合全局变量。 可以将其用作类变量,但必须设置为静态。Like - static const list =[1,2,3]。
vs:
final list = [1, 2, 3];
变量/标识符是const,而值不是。Like - const list = [1,2,3] 这就是为什么我们可以执行like - list.add(4)
其他回答
const是一个编译时常量。
final是一个运行时常数。
何时使用哪个关键字?
一个简单的例子: 使用final:如果你不知道它在编译时的值是多少。例如,当您需要从API获取数据时,就会在运行代码时发生这种情况。
使用const:如果您确定在运行代码时不会更改某个值。例如,当你声明一个始终保持不变的句子。
https://itnext.io/difference-between-const-and-final-in-dart-78c129d0c573
dart中的Final和const很容易混淆,以至于我们认为它们是相同的。
让我们来看看它们的区别:
附注:我包括图像而不是文本,因为我不能将信息制成表格 在Stackoverflow .md格式轻松。
编译时不知道的任何东西都应该在const上使用final。
你不能使用final对象初始化const对象。例如:
final myConst = 1;
const myFinal = 2;
final a = myConst; // possible
final b = myFinal; // possible
const c = myConst; // this is not possible
const d = myFinal; // possible