2011-07-26 21 views

答えて

54

あなたが探している機能がeqで、:

val x = new Obj 
val y = x 
x eq y // evaluates to true 
x ne y // evaluates to false 
+1

ありがとうございます!記録のために、これはここに文書化されています:http://www.scala-lang.org/api/current/scala/AnyRef.html –

+3

そしてその逆は 'ne'です。おそらく、それを中置表記で使用したいと思うでしょう。 'eq'、' ne'、 '=='、 '!='は、ターゲットオブジェクトがヌルである場合には(特に非中立表記の場合でも)、 'NullPointerException'をスローしないことに注意してください)。 –

+3

@Jean: "val z = null"(非常に悪いScalaフォーム)の行を上記に追加した場合、zがnullであってもz.eq(x)が例外をスローしないということですか?私はこれに懐疑的で、http://www.simplyscala.com/(REPLへのオンラインアクセス)に行き、インタラクティブに試しました。そしてあなたは正しい。それはJavaがNPEを投げているよりも素晴らしいことです。明確化のためにTyvm。 – chaotic3quilibrium