es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La variable final no está mostrando error en Dart.

const order = ['margherita', 'pepperoni'];

var total = 0.0;

for (var item in order) {

  final price = pizzaPrices[item];

  if (price != null) {

    total += price;

  } else {

    print('$item pizza is not on the menu');

  }

}

print('Total: \$$total');

Aquí, la variable “final price” se accede dos veces, una vez como “final price = ‘margherita'” y otra vez como “price = ‘pepperoni'”. ¿Por qué no muestra un error como la variable “final price” se accede dos veces? Sin embargo, el siguiente código muestra un error…

var item = 'margherita';

final price = pizzaPrices[item];

item = 'pepperoni';

price = pizzaPrices[item];

print(price);

Aquí muestra un error porque la variable final “price” se accede dos veces en DartPad.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    En el primer fragmento de código, la palabra clave final se utiliza para declarar una variable constante price dentro del bucle for. Esto significa que una vez que se asigna el valor de price, no se puede cambiar nuevamente dentro de esa iteración del bucle. Sin embargo, en cada iteración del bucle for, se declara una nueva variable price y se le asigna el valor del precio actual de la pizza. Esta nueva variable se trata como una variable separada de alcance local y, por lo tanto, no causa ningún error.

    En contraste, en el segundo fragmento de código se intenta asignar un nuevo valor a la variable final price después de que ya se le haya asignado un valor. Esto no está permitido en Dart, por lo tanto, se produce un error. Una vez que se asigna un valor a una variable final, no se puede cambiar nuevamente.

Comments are closed.