Por lo que yo entiendo, Scala == define la igualdad natural de dos objetos.¿Por qué `Array (0,1,2) == Array (0,1,2)` no devuelve el resultado esperado?
esperaba que Array(0,1,2) == Array(0,1,2)
comparara la igualdad natural. Por ejemplo, comprueba si todos los elementos de la matriz devuelven verdadero cuando se compara con los elementos correspondientes de la otra matriz.
La gente me dijo que el Array
de Scala es solo un Java []
que solo compara la identidad. ¿No sería más significativo anular el método Array
de equals
para comparar la igualdad natural en su lugar?
No estoy familiarizado con Scala. Sin embargo, ¿está seguro de que == no está comparando si las matrices son alias (referencias al mismo objeto en la memoria)? Supongo que esta es una posibilidad, ya que mencionó que está relacionado con una matriz de Java. – Cam
Es una situación desafortunada, como las otras respuestas describen, pero cuando sabes que estás tratando con Array, puedes usar sameElements y obtener la respuesta que deseas mientras evitas todo el envoltorio, el boxeo y las circunlocuciones. –