Pregunta

¿Cuáles son sus diferencias? Viniendo de un fondo de Java, me parece <=> es lo mismo que Java's Equals (), mientras que == es para comparación de referencia directa. ¿Es esto correcto?

¿Fue útil?

Solución

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

Si define un <=> Método para su clase, obtendrá todos los otros operadores de comparación definidos también (==, <, >, y así).

Otros consejos

No puedo decir que no estoy tratando de promocionarme, pero escribí un tutorial de larga duración sobre operadores de comparación e igualdad en Ruby: "Conceptos básicos de Ruby - Operadores de igualdad en Ruby"

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

== es como el de Java equals, tiempo <=> 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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top