如果该值不是一个选项,我想打印该值,如果它是选项,则打印该选项内的值。怎么做到的?以下不起作用
val a="test"
def b= a match {
case i:Some[_] => i.getOrElse("1")
case _@x=>x
}
答案 0 :(得分:4)
我想是这样的事情:
val a: Any = "test"
def b[T] = a match {
case i: Option[T] => i.getOrElse("1")
case _@x=>x
}
首先a
必须是您可以匹配的某种超类型,如果您对选项进行a: String
匹配是不可能的,因为您已经知道它是一个字符串,请注意您必须为选项传递一个类型参数。
答案 1 :(得分:3)
val a:Any="test"
def b= a match {
case Some(i) => i
case None => "1"
case x=>x
}