初学者的另一个问题。
我试图理解下一段代码是如何工作的。 现在确定第二个案例陈述的含义是什么。
obj match {
case _: BigInt => Int.MaxValue
case BigInt => -1
}
在第一种情况下,我会将对象与BingInt类型匹配 在第二种情况下匹配的是什么?
答案 0 :(得分:6)
第一个case
匹配任何值BigInt
。第二个case
匹配BigInt
随播广告对象。
def test(obj: Any) = obj match {
case _: BigInt => Int.MaxValue
case BigInt => -1
}
scala> test(BigInt(1))
res2: Int = 2147483647
scala> test(BigInt)
res3: Int = -1
那就是说,除非你有任何具体的理由来检查你是否将BigInt
同伴对象传递给你,否则你真正想要它的可能性是第一种情况。模式匹配。