我们可以使用 match 来检查类的类型吗
我是 scala 新手,现在正在学习 match
关键字。
我想知道我们是否可以使用关键字 match
来检查类的类型。我的代码是:
object Main {
def main(args: Array[String]) {
val x = "AA"
checkType(x)
}
def checkType(cls: AnyRef) {
cls match {
case String => println("is a String")
case Date => println("is a Date")
case _ => println("others")
}
}
}
代码无法编译,所以,不可能这样做?检查类类型的 scala 方法是什么?是:
if(cls.isInstanceOf[String]) { ... }
else if(cls.isInstanceOf[Date]) { ... }
else { ... }
对吗?
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 is:
object Main {
def main(args: Array[String]) {
val x = "AA"
checkType(x)
}
def checkType(cls: AnyRef) {
cls match {
case String => println("is a String")
case Date => println("is a Date")
case _ => println("others")
}
}
}
The code can't be compiled, so, it's impossible to do this? What is the scala-way to check the type of a class? Is it:
if(cls.isInstanceOf[String]) { ... }
else if(cls.isInstanceOf[Date]) { ... }
else { ... }
Right?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
然而,这将编译:
...或者其简化版本:
This however will compile:
... or the simplified version of that:
在
case
语句中的类型注释之前需要一个标识符。试试这个,它应该可以工作:
You need a identifier before the type annotation in
case
statement.Try this and it should work: