2012-04-16 34 views
5

我愿做一个模式匹配,看起来像:斯卡拉守卫与图案或匹配

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

Saddly这不起作用。有任何想法吗 ?

感谢

回答

10

您也可以测试反向条件:

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

第二个案例涵盖None并在最后一次更新是小的情况下。

+2

链匹配这绝对是更好的解决方案! – drexin 2012-04-16 09:31:09

+0

@paradigmatic :)谢谢你应该考虑一下 – jlezard 2012-04-17 07:31:05

3

或者可以替换模式与功能

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