Los operadores relacionales son símbolos de cálculo que se usan para realizar todo tipo de comparaciones de magnitud. Los utilizamos habitualmente en matemáticas.
Tabla de operadores relacionales
| Operador | Descripción |
|---|---|
== | Igual (comprobación de coincidencia de valores) |
!= | Diferente |
> | Mayor que |
< | Menor que |
>= | Mayor o igual que |
<= | Menor o igual que |
El operador == también se puede usar en otros objetos
Reglas fundamentales del operador de igualdad ==
== sirve para comprobar si los valores que representan dos variables / objetos son idénticos; si necesitas verificar estrictamente si dos referencias apuntan al mismo objeto en memoria, no uses ==, emplea la función exclusiva identical().
Tratamiento especial del valor nulo (null) Si cualquiera de los lados es null:
- Si ambos lados son
null, devuelvetrue - Si solo uno de los lados es
null, devuelvefalse
Lógica de ejecución para objetos comunes Equivale a invocar el método == del primer operando: x.==(y); el operador es, en esencia, un método miembro del operando.
Todas las salidas siguientes son true: null no es igual a 0 ni a la cadena vacía «»
void main() {
// Ambos lados son null, el resultado de == es true
print(null == null); //true
// Un lado null, el otro con valor, el resultado de == es false
print(null != 0); //true
print(null != ""); //true
}
Lenguaje del código: PHP (php)
Veamos un ejemplo completo
void main() {
// Comparación de igualdad con ==
print(2 == 2);
print("dart" == "dart");
print([1,2] == [1,2]);
// Comparación de desigualdad con !=
print(2 != 3);
print(true != false);
// > Mayor que
print(3 > 2);
print(10 > -5);
// < Menor que
print(2 < 3);
print(-1 < 0);
// >= Mayor o igual que
print(3 >= 3);
print(5 >= 2);
// <= Menor o igual que
print(2 <= 3);
print(4 <= 4);
}
Lenguaje del código: Dart (dart)
Resultados de ejecución
true
true
false
true
true
true
true
true
true
true
true
true
trueLenguaje del código: JavaScript (javascript)
Diferencias entre == y identical()
void main() {
var a = [1, 2];
var b = [1, 2];
// El == de List compara referencias de objetos; a y b son dos arrays distintos, el resultado es false
print(a == b);
// identical comprueba si se trata del mismo objeto en memoria; a y b son arrays diferentes, devuelve false
print(identical(a, b));
// c hace referencia directa a a, apuntan al mismo objeto, identical devuelve true
var c = a;
print(identical(a, c));
}
Lenguaje del código: PHP (php)
Aclaración: Para comparar el contenido de dos listas, usa listEquals
import 'package:flutter/foundation.dart';
listEquals(a, b); // true, compara cada elemento del arrayLenguaje del código: JavaScript (javascript)
Comparación de cadenas de texto
Solo se pueden usar == y != para comparar cadenas
void main() {
// Operaciones relacionales / de igualdad para cadenas
print("apple" != "banana"); //true
print("apple" == "apple"); //true
//print("zoo" > "apple"); // Error: las cadenas no admiten > < >= <=, solo == != para comprobar igualdad
// Comparación de igualdad de valores booleanos
print(true == true); //true
print(true != false); //true
}
Lenguaje del código: PHP (php)
Operadores relacionales combinados con operadores aritméticos
Según las lecciones anteriores, sabemos que: operaciones aritméticas > operaciones relacionales; primero se calculan sumas, restas, multiplicaciones y divisiones, luego se realizan las comparaciones de magnitud e igualdad;
void main() {
// Primero calcula las expresiones aritméticas de ambos lados, luego compara
print(10 + 5 == 3 * 5); // 15 == 15 → true
print(20 - 3 != 8 + 9); // 17 != 17 → false
print(12 + 4 > 5 + 6); // 16 > 11 → true
print(9 - 7 < 10 - 1); // 2 < 9 → true
print(6 + 2 >= 4 * 2); // 8 >= 8 → true
print(15 - 8 <= 3 + 5); // 7 <= 8 → true
}Lenguaje del código: PHP (php)
En el ejemplo anterior, se calculan primero las expresiones matemáticas a ambos lados del operador relacional y después se comparan los resultados obtenidos.