Opérateur vaisseau spatial

Définition, exemples et bonnes pratiques

À retenir

  • Symbole : .
  • Résultat -1 : la gauche est plus petite.
  • Résultat 0 : les deux sont égaux.
  • Résultat 1 : la gauche est plus grande.

L'opérateur vaisseau spatial est un outil de programmation qui permet de comparer deux valeurs en une seule fois. Plutôt que de dire simplement si c'est "vrai" ou "faux", il répond par trois états possibles : la première valeur est soit plus petite, soit égale, soit plus grande que la seconde.

Étymologie

Traduction directe de l'anglais spaceship operator, ce nom ludique provient de la forme du symbole , qui évoque un petit vaisseau spatial pixelisé (comme dans le jeu Space Invaders) ou un chasseur TIE de Star Wars.

Exemples d'usage

  • En langage PHP ou C++, comparer 5 10 renvoie -1 (car 5 est inférieur).
  • Comparer "B" "A" renverra 1 (car B arrive après A dans l'ordre alphabétique).
  • Comparer 10 10 renverra 0 (égalité parfaite).

Cas d'usage

Cet opérateur est essentiellement utilisé pour simplifier l'écriture des fonctions de tri. Lorsqu'on veut classer une liste d'objets (par exemple des prix, des noms ou des dates), l'algorithme a besoin de savoir rapidement si un élément doit être placé avant, après ou au même niveau qu'un autre.

Bonnes pratiques

Utilisez cet opérateur pour alléger votre code : il remplace avantageusement une succession de conditions if...else complexes. Assurez-vous cependant que la version de votre langage de programmation le supporte (par exemple, PHP 7+ ou C++20+).

Synonymes

opérateur de comparaison à trois voies three-way comparison

Antonymes

opérateurs de comparaison standard (== )

Conseil

Si vous apprenez à trier des tableaux de données complexes, mémorisez bien ce symbole. C'est le moyen le plus moderne et le plus propre pour définir des règles de tri personnalisées dans les langages qui le proposent.

Questions fréquentes

Quel est l'avantage par rapport à un simple signe 'supérieur à' ?

Il permet de traiter les trois cas (inférieur, égal, supérieur) avec une seule instruction, ce qui rend le code plus performant et plus court.

Est-ce que cela fonctionne avec du texte ?

Oui, il compare généralement les chaînes de caractères en suivant l'ordre alphabétique ou le code ASCII des lettres.