Operadores relacionais Dart

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

OperadorExplicaçã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 → retorna true
  • Apenas um dos lados é null → retorna false

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.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *