Os operadores relacionais são símbolos de cálculo usados para fazer todos os tipos de comparações de tamanho. Nós os utilizamos frequentemente na matemática.
Tabela de operadores relacionais
| Operador | Explicação |
|---|---|
== | Igual (verificação de valores idênticos) |
!= | Diferente |
> | Maior que |
< | Menor que |
>= | Maior ou igual a |
<= | Menor ou igual a |
O operador == também pode ser usado em outros objetos
Regras centrais do operador de igualdade ==
== serve para verificar se os valores representados por duas variáveis / objetos são iguais; se precisar checar de forma rigorosa se duas referências apontam para o mesmo objeto na memória, não use ==, utilize a função exclusiva identical().
Tratamento especial do valor nulo (null) Se qualquer um dos lados for null:
- Os dois lados são
null→ retornatrue - Apenas um dos lados é
null→ retornafalse
Lógica de execução para objetos comuns Equivale a chamar o método == do primeiro operando: x.==(y); o operador é essencialmente um método membro do operando.
Todos os resultados abaixo são true: null não é igual a 0 nem à string vazia «»
void main() {
// Ambos os lados são null, o resultado de == é true
print(null == null); //true
// Um lado null, outro com valor, o resultado de == é false
print(null != 0); //true
print(null != ""); //true
}
Code language: PHP (php)
Veja um exemplo completo
void main() {
// == Comparação de igualdade
print(2 == 2);
print("dart" == "dart");
print([1,2] == [1,2]);
// != Comparação de diferença
print(2 != 3);
print(true != false);
// > Maior que
print(3 > 2);
print(10 > -5);
// < Menor que
print(2 < 3);
print(-1 < 0);
// >= Maior ou igual a
print(3 >= 3);
print(5 >= 2);
// <= Menor ou igual a
print(2 <= 3);
print(4 <= 4);
}
Code language: Dart (dart)
Resultados da execução
true
true
false
true
true
true
true
true
true
true
true
true
trueCode language: JavaScript (javascript)
Diferença entre == e identical()
void main() {
var a = [1, 2];
var b = [1, 2];
// O == de List compara referências de objetos; a e b são dois arrays diferentes, resultado false
print(a == b);
// identical verifica se é o mesmo objeto em memória; a e b são arrays distintos, retorna false
print(identical(a, b));
// c referencia diretamente a a, apontam para o mesmo objeto, identical retorna true
var c = a;
print(identical(a, c));
}
Code language: PHP (php)
Observação: Para comparar o conteúdo de duas listas, use listEquals
import 'package:flutter/foundation.dart';
listEquals(a, b); // true, compara cada elemento do arrayCode language: JavaScript (javascript)
Comparação de strings
Apenas == e != podem ser usados para comparar strings
void main() {
// Operações relacionais / de igualdade para strings
print("apple" != "banana"); //true
print("apple" == "apple"); //true
//print("zoo" > "apple"); // Erro: strings não aceitam > < >= <=, só == != para igualdade
// Comparação de igualdade de valores booleanos
print(true == true); //true
print(true != false); //true
}
Code language: PHP (php)
Operadores relacionais combinados com operadores aritméticos
Com base nas aulas anteriores, sabemos que: operações aritméticas > operações relacionais; primeiro são calculadas somas, subtrações, multiplicações e divisões, depois as comparações de tamanho e igualdade;
void main() {
// Calcula primeiro as expressões aritméticas dos dois lados, depois 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
}Code language: PHP (php)
No exemplo acima, primeiro calculamos as expressões matemáticas de cada lado do operador relacional e depois comparamos os resultados obtidos.