从Scala规范8.1.10开始:
中缀操作模式
的缀操作模式p;op;q
是构造函数或提取模式的简写op(p,q)
。
所以
case 1 Test 2 => println("First")
被重写为
case Test(1, 2) => println("First")
您实际上可以在REPL中看到这一点,方法是//print
在行的末尾添加并按
两次:
scala> (1, 2) match { case 1 Test 2 => println("First") } //print scala.Tuple2.apply[Int, Int](1, 2) match { case $line10.$read.$iw.$iw.Test(1, 2) => scala.Predef.println("First") } // : Unit