val a: Array[Int] = Array(1,2,4,5)
val b: Array[Int] = Array(1,2,4,5)
a==b // false
Existe-t-il un moyen de correspondance de motifs pour voir si deux tableaux (ou séquences) sont équivalents?
Vous devez changer votre dernière ligne en
a.deep == b.deep
pour faire une comparaison approfondie des tableaux.
De Programmation Scala :
Array(1,2,4,5).sameElements(Array(1,2,4,5))
a.corresponds(b){_ == _}
Scaladoc:
true
si les deux séquences ont la même longueur etp(x, y)
esttrue
pour tous les éléments correspondantsx
duthis
tableau encapsulé ety
dethat
, sinonfalse
Pour de meilleures performances, vous devez utiliser:
Java.util.Arrays.equals(a, b)
Ceci est très rapide et ne nécessite pas d'allocation d'objet supplémentaire. Array[T]
in scala est identique à Object[]
en Java. Même histoire pour les valeurs primitives comme Int
qui est Java int
.