0
val tuple = (1,2)  //> tuple  : (Int, Int) = (1,2)
tuple !=0          //> res0: Boolean = true

val tuple1 = (0,0) //> tuple1  : (Int, Int) = (0,0)
tuple1 !=0         //> res1: Boolean = true

上記はコンパイルされるべきではないと思いました..しかし、そうです。もしそうなら、これはどういう意味ですか?タプルをゼロと比較することは、どのような状況で意味がありますか? また、ご覧のとおり、ゼロ以外のタプルは、ゼロと比較すると真になります。

4

1 に答える 1

4

任意のオブジェクトを他のオブジェクトと比較できます。それらが異なるタイプである場合(タプルと整数ゼロは常にそうであるように)、それらは常に等しくありません。比較するオブジェクトがコンパイル時に同じ型であることを要求したい場合は、scalaz'=/=を使用できます。===

于 2013-11-01T15:41:33.707 に答える