斯卡拉保护模式与或匹配

时间:2012-04-16 09:05:01

标签: scala pattern-matching

我想做一个模式匹配,看起来像:

    sinceOp match {
        case  None |Some(lastUpdate) if lastUpdate<= update.time =>

可悲的是,这不起作用。有什么想法吗?

由于

2 个答案:

答案 0 :(得分:10)

你也可以测试反向条件:

sinceOp match {
  case Some(lastUpdate) if lastUpdate > update.time => //...
  case _ => //...
}

第二种情况包括None和最后一次更新的情况。

答案 1 :(得分:3)

或者你可以用函数链替换模式匹配

sinceOp.filterNot(_ <= update.time).getOrElse(println("if None"))