41
¿Cómo se prueba la igualdad de referencia en Scala?igualdad de referencia Scala
val x = new Obj
val y = x
x.referenceEquals(y) // evaluates to true
¿Cómo se prueba la igualdad de referencia en Scala?igualdad de referencia Scala
val x = new Obj
val y = x
x.referenceEquals(y) // evaluates to true
La función que está buscando es eq
, que es miembro de AnyRef:
val x = new Obj
val y = x
x eq y // evaluates to true
x ne y // evaluates to false
Gracias! Para el registro, esto se documenta aquí: http://www.scala-lang.org/api/current/scala/AnyRef.html –
Y su inverso es 'ne'. Lo más probable es que desee utilizarlo en notación infija. Tenga en cuenta que 'eq',' ne', '==' y '! =' No arrojan 'NullPointerException' cuando el objeto de destino es nulo, incluso si parece que podría (especialmente en notación no infija) –
@Jean: Si agregué la línea "val z = null" (muy mala forma de Scala) a la anterior, ¿estás diciendo que z.eq (x) no arrojará una excepción aunque z sea nulo? Estaba tan escéptico de esto, fui a http://www.simplyscala.com/ (acceso en línea a REPL) y lo probé de forma interactiva. Y estás en lo correcto Eso es maravilloso y ciertamente mejor que Java lanzando un NPE. Tyvm para la aclaración. – chaotic3quilibrium