Per quanto ho capito, Scala == definisce l'uguaglianza naturale di due oggetti.Perché `Array (0,1,2) == Array (0,1,2)` non restituisce il risultato previsto?
Mi aspettavo che Array(0,1,2) == Array(0,1,2)
confronta l'uguaglianza naturale. Ad esempio, controlla se tutti gli elementi dell'array restituiscono true se confrontati con gli elementi corrispondenti dell'altro array.
La gente mi ha detto che lo Array
di Scala è solo un Java []
che confronta solo l'identità. Non sarebbe più utile sovrascrivere il metodo per confrontare l'uguaglianza naturale?
Non ho familiarità con Scala. Tuttavia, sei sicuro == non sta confrontando se gli array sono alias (riferimenti allo stesso oggetto in memoria)? Presumo che questa sia una possibilità, dal momento che hai menzionato che è relativo a un array Java. – Cam
È una situazione sfortunata, come le altre risposte descrivono, ma quando sai che hai a che fare con Array, puoi usare sameElements e ottenere la risposta che desideri evitando tutto il wrapping, il pugilato e le circonlocuzioni. –