我想检查对象是否为选项。
例如:
val foo: Option[String] = Some("foo")
val bar: String = "bar"
我想要一种isOption
的功能:
def isOption(value: Any): Boolean = {
???
}
结果将是:
isOption(foo) // true
isOption(bar) // false
答案 0 :(得分:5)
您可以将函数编写为
def isOption(value: Any): Boolean = {
value match {
case x : Option[_] => true
case _ => false
}
}
调用该功能
val foo: Option[String] = Some("foo")
val bar: String = "bar"
您将得到一个输出
res0: Boolean = true
res1: Boolean = false
答案 1 :(得分:4)
一个简短的解决方案是
value.isInstanceOf[Option[_]]
这也不会掩盖您实际上未键入Any
值和instanceof
在代码中四处飞散的事实,如果可能的话,应该避免这种情况。