2

我尝试了match一些case申请后。种类nested cases/matches

val x1 = 2 // or 1, 3 ...
val str = x1 match {   // scala.MatchError: 1 (of class java.lang.Integer)

  case x if(x > 1) => "x"+x match {case "x1" => "yes"}

  // updated:
  case _ => "nope"
}
println (str)

scala.MatchError异常失败。

可能吗?好像我见过类似的东西。

线程“主”scala.MatchError 中的异常:在 scala.Function0$class.apply$mcV$sp( Function0.scala:40) at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12) at scala.App$$anonfun$main$1.apply(App.scala:71) at scala.App$$ anonfun$main$1.apply

4

1 回答 1

4

您遇到的问题是您的示例输入 ( val x1 = 1) 与您给出的一种情况不匹配(因为 x1 不大于 1)。您将需要修改现有案例(例如,将 if 更改为类似的if(x >= 1)内容)或添加至少一个案例,并且可能应该考虑默认案例。例如。:

val str = x1 match {   // scala.MatchError: 1 (of class java.lang.Integer)
  case x if(x > 1) => "x"+x match {case "x1" => "yes"}
  case _ => "no match"
}
于 2013-09-09T23:57:51.943 回答