Ordered
trait
の要求では、ScalaのBigDecimal
クラスのequals
メソッドは、順序と一致しています。ただし、ハッシュコードは単にラップされたjava.math.BigDecimal
から取得されるため、equalsと矛盾します。ScalaのBigDecimalはequals/hashCode規約に違反していますか?
object DecTest {
def main(args: Array[String]) {
val d1 = BigDecimal("2")
val d2 = BigDecimal("2.00")
println(d1 == d2) //prints true
println(d1.hashCode == d2.hashCode) //prints false
}
}
これは既知の問題ではありません。何か不足していますか?
これは誰もがScalaについて行くと読む必要がupvotingです! Scalaの '=='はJavaの '.equals'に相当します。 **この回答は間違っています** –
* @ John * - あなたの答えはScalaで実行しようとしましたか?それは間違っています! 'scala.BigDecimal'と' java.math.BigDecimal'は別のものです –
* @ John * - ごめんなさい:リンクをたどると、 'equals'メソッドがJavaの' BigDecimal.compare 'method –