I\'m new to scala, and I\'m learning the match
keyword now.
I wanna know if we can use the keyword match
to check the type of a class. My code
You need a identifier before the type annotation in case
statement.
Try this and it should work:
object Main {
def main(args: Array[String]) {
val x = "AA"
checkType(x)
}
def checkType(cls: AnyRef) {
cls match {
case x: String => println("is a String:"+ x)
case x: Date => println("is a Date:" + x)
case _ => println("others")
}
}
}
This however will compile:
def checkType(cls: AnyRef) {
cls match {
case s: String => println("is a String")
case d: Date => println("is a Date")
case _ => println("others")
}
}
... or the simplified version of that:
def checkType(cls: AnyRef) =
cls match {
case _: String => println("is a String")
case _: Date => println("is a Date")
case _ => println("others")
}