1

我想做这样的事情:

val a = v match {
   case 1 => 1
   case 2 if (condition) => logging
   case 2 if (other conditions) => 3
   case 2 if (more conditions) => 4
   case _ => 5
}

我希望这仅返回第一种情况 2 的日志,否则会失败以查看返回的内容

编辑:更新

4

2 回答 2

5

Scala 的大小写匹配不会“失败”,但如果我理解正确,这将满足您的需求。

val a = v match {
  case 1 => 1
  case 2 => {
    logging // I'm assuming `logging` is some Unit
    if(some condition) 3
    else if(some other condition) 4
    else 5
  }
  case _ => 5
}
于 2012-09-18T20:58:12.460 回答
2

像这样的东西?

如果v == 2,a将被赋值,logging否则a将被赋值v

val a = v match {
   case 2 => logging
   case _ => v
}
于 2012-09-18T20:19:53.793 回答