301 votes

Qu'est-ce que l'opérateur Ruby <=> (vaisseau spatial)?

Ce qui est le rubis `` operator (vaisseau spatial) ? L’opérateur est mis en oeuvre par toutes les autres langues ?

434voto

TonyArra Points 2546

Perl a été la première langue de l'utiliser. Groovy est une autre langue qui la prend en charge. Fondamentalement, au lieu de renvoyer 1 (true) ou 0 (false) selon que les arguments sont égaux ou inégaux, le vaisseau spatial de l'opérateur sera de retour 1, 0ou −1 selon la valeur de la gauche argument par rapport à la droite argument.

a <=> b :=
  if a < b then return -1
  if a = b then return  0
  if a > b then return  1
  if a and b are not comparable then return nil

Il est utile pour le tri d'un tableau.

81voto

steenslag Points 29662

Le vaisseau spatial est utile lorsque vous définissez dans votre propre classe et inclure le module Comparable. Votre classe, puis obtient le `` méthodes pour libre.

20voto

gnovice Points 70970

C’est un opérateur de comparaison générale. Elle retourne -1, 0 ou +1 selon que son récepteur est inférieur à, égal, ou supérieur à son argument.

20voto

Anil Maurya Points 935

Je vais vous expliquer avec un exemple simple

  1. [1,3,2] <=> [2,2,2]

    Ruby va commencer à comparer chaque élément de tableau de gauche. 1 pour la gauche du tableau est plus petit que 2 de droit de tableau. Donc à gauche du tableau est plus petit que le droit de tableau. La sortie sera -1.

  2. [2,3,2] <=> [2,2,2]

    Comme ci-dessus, il sera tout d'abord comparer le premier élément qui sont égaux, alors il sera de comparer deuxième élément, dans ce cas, le deuxième élément de la gauche de la matrice est plus grande donc la sortie est 1.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X