次のコードでは、「x」に型の不一致があることを示すコンパイルエラーが発生しています。
val someRef: java.lang.Long = 42L
someRef match {
case x: Long => println("The answer: " + x)
case _ => println("Unknown")
}
マッチステートメントでScalaにsomeRefの自動アンボックスを設定するにはどうすればよいですか?
次のコードでは、「x」に型の不一致があることを示すコンパイルエラーが発生しています。
val someRef: java.lang.Long = 42L
someRef match {
case x: Long => println("The answer: " + x)
case _ => println("Unknown")
}
マッチステートメントでScalaにsomeRefの自動アンボックスを設定するにはどうすればよいですか?
型システムは、このレベルでのボクシングについては知りません。Any
しかし、が存在する場合、ボックス化Long
されたものは実際には(おそらく)単なるLong
(AnyVal
クラス継承ツリーの一部から)であると想定されていることを知っています。それで:
val someRef: java.lang.Long = 42L
(someRef: Any) match {
case x : Long => println("The answer is " + x)
case _ => println("What answer?")
}