我发现这个益智游戏很有意思,特别是这段代码:
val (i, j): (Int, Int) = ("3", "4")
Run Code Online (Sandbox Code Playgroud)
在Scala 2.9.1中在运行时失败,但在编译时失败了w/2.10 M3(这很棒).我尝试跟踪新Scala版本中的内容,但我无法在此处连接点.什么改进导致了这种更精确的行为?
Dan*_*ral 10
正在发生的事情是新的模式匹配器更容易增强和维护,因为它不是一个老鼠嵌套代码.以下示例代码也应显示相同的更改:
("3", "4") match { case (i, j): (Int, Int) => /* whatever */ }
Run Code Online (Sandbox Code Playgroud)
发生了什么事情是Scala在编译时理解模式永远无法匹配.