10
我希望它可以给我一个类型的错误,因为(String, String)
在else
情况并不Pair
。为什么这不会导致类型错误?
case class Pair(x: String, y: String)
val value = Console.readLine.toBoolean
val Pair(x, y) =
if (value) Pair("foo", "bar")
else false
相反,如果我输入假的,我会在运行时出现以下错误。
scala.MatchError: (foo,bar) (of class scala.Tuple2)
我想解构是分配的结果Any
类型的变量,然后就可以匹配只是糖,但似乎不幸的是,斯卡拉让这只苍蝇。
我需要记住这个命令('scalac')! – schmmd 2012-03-16 19:59:44
这是很好的知道,但我不认为Product'的'常见的超类型就是为什么它编译。我改变了我的例子来证明这一点,尽管它们都有一个共同的超类型的'Any'! – schmmd 2012-03-16 20:04:57