Prioridad de operadores
En Dart y otros lenguajes de programación cuando tenemos una operación donde hay sumas, restas, multiplicaciones, divisiones, etc. Estas no se ejecutan de izquierda a derecha.
Por ejemplo la siguiente operación:
var resultado = 5 + 5 / 2;
Si se ejecutará de izquierda a derecha el resultado sería 5. Pero en realidad el resultado es 7.5. La razón es que
primero se realiza la división de 5/2
y después se realiza la suma de 5
por lo que el resultado es 7.5.
La siguiente tabla muestra la prioridad en la que las operaciones se ejecutan:
Nombre | Operador |
---|---|
Parentesis | ( ) |
Multiplicacion, Division, Modulo | * / ~/ % |
Suma, Resta | + - |
En la tabla anterior podemos ver que primero se ejecuta lo que está dentro de los paréntesis, después las multiplicaciones, divisiones, módulo y por último la suma y resta.
Si el ejemplo anterior lo modificamos y agregamos paréntesis en la suma podremos ver que el resultado va a ser 5
.
var resultado = ( 5 + 5 ) / 2;
Puedes correr el siguiente código en DartPad para ver los resultados: