2011-07-24 20 views

Respuesta

14

== solo mide si dos objetos son iguales, mientras que <=> debe devolver -1 si el primer objeto es más pequeño, 0 si son iguales y 1 si el primer objeto es mayor.

Si se define un método <=> para su clase, obtendrá todos los demás operadores de comparación definidos así (==, <, >, y así sucesivamente).

+3

Ah, ¿entonces <=> es como el método compareTo() de Java? –

+0

@devoured, sí, exactamente, –

2

== es como Java equals, mientras que <=> es como compareTo. == compara los dos objetos y devuelve si son equivalentes. a <=> b compara los dos objetos y devuelve 1 si a es más grande, 0 si son iguales y -1 si b es más grande.

3

no puedo decir que no estoy tratando de promover a mí mismo, pero me escribió un tutorial sobre la longitud completa de comparación y operadores de igualdad en Ruby: "Ruby Basics – Equality operators in Ruby"

Allí se puede ver las diferencias entre todos los operadores de igualdad, incluyendo < =>, == y === (y las implicaciones de implementarlas, incluida la implementación del método hash).

+0

Estaba leyendo ese sitio: P –

Cuestiones relacionadas