Opérateurs de relation Dart

Les opérateurs de relation sont des symboles de calcul utilisés pour réaliser toutes sortes de comparaisons de taille. Nous les utilisons régulièrement en mathématiques.

Table des opérateurs de relation

OpérateurExplication
==Égalité (vérification de l’égalité des valeurs)
!=Inégalité
>Supérieur à
<Inférieur à
>=Supérieur ou égal à
<=Inférieur ou égal à

L’opérateur == peut également être utilisé sur d’autres objets

Règles clés de l’opérateur d’égalité ==

== permet de vérifier si les valeurs représentées par deux variables / objets sont identiques ; si vous avez besoin de contrôler strictement si deux références pointent vers exactement le même objet en mémoire, n’utilisez pas ==, utilisez la fonction dédiée identical().

Traitement spécial de la valeur nulle (null) Si l’un des deux opérandes vaut null :

  • Si les deux côtés sont null, renvoie true
  • Si un seul côté est null, renvoie false

Fonctionnement des objets classiques Équivaut à appeler la méthode == du premier opérande : x.==(y) ; l’opérateur est intrinsèquement une méthode membre de l’opérande.

Tous les résultats ci-dessous valent true : null n’est pas égal à 0 ni à la chaîne vide « »

void main() {
	// Les deux côtés valent null, le résultat de == est true
	print(null == null); //true
	// Un côté null, l'autre avec une valeur, le résultat de == est false
	print(null != 0); //true
	print(null != ""); //true
}
Langage du code : PHP (php)

Voici un exemple complet

void main() {
	// Comparaison d'égalité avec ==
	print(2 == 2);
	print("dart" == "dart");
	print([1,2] == [1,2]);

	// Comparaison d'inégalité avec !=
	print(2 != 3);
	print(true != false);

	// > Supérieur à
	print(3 > 2);
	print(10 > -5);

	// < Inférieur à
	print(2 < 3);
	print(-1 < 0);

	// >= Supérieur ou égal à
	print(3 >= 3);
	print(5 >= 2);

	// <= Inférieur ou égal à
	print(2 <= 3);
	print(4 <= 4);
}
Langage du code : Dart (dart)

Résultats d’exécution

true
true
false
true
true
true
true
true
true
true
true
true
trueLangage du code : JavaScript (javascript)

Différence entre == et identical()

void main() {
	var a = [1, 2];
	var b = [1, 2];
	
	// Le == des List compare les références des objets ; a et b sont deux tableaux distincts, le résultat est false
	print(a == b);
	
	// identical vérifie s'il s'agit du même objet mémoire ; a et b sont deux tableaux différents, renvoie false
	print(identical(a, b));
	
	// c pointe directement vers a, ils partagent le même objet, identical renvoie true
	var c = a;
	print(identical(a, c));
}
Langage du code : PHP (php)

Complément : pour comparer le contenu de deux listes, utilisez listEquals

import 'package:flutter/foundation.dart';
listEquals(a, b); // true, compare chaque élément du tableauLangage du code : JavaScript (javascript)

Comparaison des chaînes de caractères

Seuls == et != peuvent être utilisés pour comparer des chaînes

void main() {
	// Opérateurs de relation / égalité sur chaînes
	print("apple" != "banana"); //true
	print("apple" == "apple"); //true
	//print("zoo" > "apple"); // Erreur : les chaînes n'acceptent pas > < >= <=, seul == != permet de vérifier l'égalité

	// Comparaison d'égalité sur valeurs booléennes
	print(true == true);  //true
	print(true != false);  //true
}
Langage du code : PHP (php)

Opérateurs de relation combinés aux opérateurs arithmétiques

D’après les cours précédents, la priorité est la suivante : opérations arithmétiques > opérations de relation ; on calcule d’abord les additions, soustractions, multiplications et divisions, puis on réalise les comparaisons de taille et d’égalité ;

void main() {
  // Calcul des expressions arithmétiques des deux côtés avant comparaison
  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
}Langage du code : PHP (php)

Dans l’exemple ci-dessus, on calcule d’abord les expressions mathématiques de chaque côté de l’opérateur de relation, puis on compare les résultats obtenus.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *