5

我想做一个看起来像这样的模式匹配:

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

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

谢谢

4

2 回答 2

10

您还可以测试相反的条件:

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

第二种情况涵盖了两者None以及最后一次更新较小的情况。

于 2012-04-16T09:27:33.983 回答
3

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

sinceOp.filterNot(_ <= update.time).getOrElse(println("if None"))
于 2012-04-16T09:31:54.117 回答