【发布时间】:2011-04-24 08:55:24
【问题描述】:
这是 Scala 2.8.0 中的错误吗? (同样的情况发生在 2.8.1.RC2)
导入junit.framework._ 导入断言._ 类 BugTest 扩展 TestCase { def compare(first: Any, second: Any): Int = { (第一,第二)匹配{ case (k: Int, o: Int) => k 比较 o //为什么下一个 case 匹配 (Float, Int) 但不匹配 (Int, Float) ??? case (k: Number, o: Number) => k.doubleValue() 比较 o.doubleValue() case _ => throw new Exception("不支持的比较 " + first + "; " + second) } } def testCompare() { assertEquals("Both Int", -1, compare(0, 1)) assertEquals("Both Float", 1, compare(1.0, 0.0)) assertEquals("Float then Int", 0, compare(10.0, 10)) assertEquals("Int then Float", 0, compare(10, 10.0))//这个失败并抛出异常 } }【问题讨论】:
标签: scala