Question

Quelles sont leurs différences? Issu d'un milieu Java, il me semble bien est le même <=> que les égaux de Java (), alors que == est pour la comparaison de référence directe. Est-ce exact?

Était-ce utile?

La solution

== seules les mesures, si deux objets sont égaux, alors que <=> doit retourner -1 si le premier objet est plus petit, 0 si elles sont égales, et 1 si le premier objet est plus grand.

Si vous définissez une méthode <=> pour votre classe, vous obtiendrez tous les autres opérateurs de comparaison définis ainsi (==, <, >, etc.).

Autres conseils

ne peut pas dire que je ne cherche pas à me promouvoir, mais j'écrit un tutoriel de pleine longueur sur les opérateurs de comparaison et de l'égalité dans Ruby: "Ruby Basics - opérateurs d'égalité dans Ruby"

Là, vous pouvez voir les différences entre tous les opérateurs d'égalité, y compris <=>, == et === (et les conséquences de leur mise en œuvre, y compris la mise en œuvre de la méthode de hachage).

== est comme le equals de Java, tandis que <=> est comme compareTo. == compare les deux objets et retourne si elles sont équivalentes. a <=> b compare les deux objets et renvoie 1 si a est plus grand, 0 si elles sont les mêmes et -1 si b est plus grand.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top