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 _ => //...
}

None2 番目のケースは、最後の更新が小さいケースの 両方をカバーします。

于 2012-04-16T09:27:33.983 に答える
3

または、パターンマッチングを一連の関数に置き換えることができます

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