Ce qui est le rubis `` operator (vaisseau spatial) ? L’opérateur est mis en oeuvre par toutes les autres langues ?
Réponses
Trop de publicités?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
, 0
ou −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.
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.
Je vais vous expliquer avec un exemple simple
-
[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 que2
de droit de tableau. Donc à gauche du tableau est plus petit que le droit de tableau. La sortie sera-1
. -
[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
.