Scala在2.10中通过模式匹配改善了什么?

Ada*_*ung 26 scala scala-2.10

我发现这个益智游戏很有意思,特别是这段代码:

val (i, j): (Int, Int) = ("3", "4")
Run Code Online (Sandbox Code Playgroud)

在Scala 2.9.1中在运行时失败,但在编译时失败了w/2.10 M3(这很棒).我尝试跟踪新Scala版本中的内容,但我无法在此处连接点.什么改进导致了这种更精确的行为?

oxb*_*kes 16

在scala 2.10中,模式匹配器已经完成了重写,现在是虚拟化模式匹配器.阅读更多相关信息!


Dan*_*ral 10

正在发生的事情是新的模式匹配器更容易增强和维护,因为它不是一个老鼠嵌套代码.以下示例代码也应显示相同的更改:

("3", "4") match { case (i, j): (Int, Int) => /* whatever */ }
Run Code Online (Sandbox Code Playgroud)

发生了什么事情是Scala在编译时理解模式永远无法匹配.