飞镖中的最终/常量

问题描述

    void main() {
      const pizzaPrices = {
        'Margherita' : 5.5,'Pepperoni' : 7.5,'vegetarian' : 6.5,};
      var sum = 0.0;
      const order = ['Margherita','Pepperoni'];
      for (var item in order){
        final price = pizzaPrices[item];
...
      }
    } 

final price = pizzaPrices[item]; 其余的代码应该打印订单的总价,我不明白为什么 final 在这种情况下有效? final 的重点不就是不允许变量改变吗?

解决方法

您正在为每次循环迭代创建一个新的 final price。您将只能在当前循环迭代中使用 price,并且将在下一次迭代中创建新的 final price


final 变量在声明时可以赋值,但不能重新赋值。您将无法在同一次循环迭代中再次为 price 赋值。

据我所知,const 被分配了一个硬编码值并且永远不能改变。 final 可以在运行时分配一次并且永远不能更改。