Unterschied zwischen <=> und == in Ruby?
-
25-10-2019 - |
Frage
Was sind ihre Unterschiede? Wenn ich aus einem Java -Hintergrund stammt, scheint es mir zu sein. Ist das richtig?
Lösung
==
Nur Maßnahmen, wenn zwei Objekte gleich sind, während <=>
sollte -1 zurückgeben, wenn das erste Objekt kleiner ist, 0, wenn es gleich ist, und 1, wenn das erste Objekt größer ist.
Wenn Sie a definieren <=>
Methode für Ihre Klasse erhalten alle anderen Vergleichsbetreiber auch definiert (==
, <
, >
, usw).
Andere Tipps
Ich kann nicht sagen, dass ich nicht versuche, mich selbst zu bewerben, aber ich habe ein Tutorial in voller Länge über Vergleichs- und Gleichstellungsoperatoren in Ruby geschrieben: "Ruby Basics - Gleichstellungsoperatoren in Ruby"
Dort können Sie die Unterschiede zwischen allen Gleichstellungsoperatoren sehen, einschließlich <=>, == und === (und die Auswirkungen der Implementierung, einschließlich der Hash -Methode -Implementierung).
==
ist wie Javas equals
, während <=>
ist wie compareTo
. ==
Vergleicht die beiden Objekte und gibt zurück, ob sie gleichwertig sind. a <=> b
Vergleicht die beiden Objekte und gibt 1 zurück, wenn a
ist größer, 0, wenn sie gleich sind und -1
wenn b
ist größer.