私はいくつかの演習を行っていましたが、tuple2のマッチングについて次の動作に気づきました。これには特別な理由がありますか?
def test(x: Any): Unit= x match{
case i: Int => println("int")
case b: Boolean => println("bool")
case ti: (_, Int) => println("tuple2 with int")
case tb: (_, Boolean)=> println("tuple2 with boolean")
case _ => println("other")
}
test(false) //prints bool
test(3) ///prints int
test((1,3)) //prints tuple with int
test((1,true)) //prints tuple with int
tiとtbのケースを交換すると、(1,3)はtuple2をブール値で出力します。ここで型キャストが行われていると思いますが、その理由はわかりません。
誰かが私に簡単な説明をしてもらえますか?ありがとう