7
votes

Confus avec l'opérateur <=> de Ruby

Je suis confondu avec l'opérateur de Ruby's <=>. Comment va-t-il différer de == ou ===? Tout exemple complet / cas d'utilisation? Merci.


0 commentaires

3 Réponses :


9
votes

C'est ce qu'on appelle l'opérateur "vaisseau spatial". Plus d'infos: Qu'est-ce que l'opérateur Ruby <=> (vaisseau spatial)? et http://fr.wikipedia.org/wiki/spaceship_operator


1 commentaires

Que diriez-vous de ce code de code, cela m'a le plus confus. En supposant A = ["D", "A", "E", "C", "B"] Comment cela fonctionne-t-il exactement? A.Sort {| x, y | y <=> x}



14
votes

<=> est l'opérateur de comparaison combiné. Il retourne 0 si LHS est égal à RHS, 1 si LHS est supérieur à la RHS et -1 si LHS est inférieur à RHS


0 commentaires

2
votes

== ne fonctionnera pas dans le tri par exemple

[3,5,6,2,7] .sort {| x, y | x <=> y}

== retourne boolean
<=> retourne fixnum (-1,0,1)


1 commentaires

Je suppose -1 est le même que faux, et 1 est le même que vrai. Mais comment fonctionne-t-il dans cet exemple?