Scala:使用Option

时间:2019-04-19 18:48:17

标签: scala null option flatten

我有一个List[A],其中A是带有多个字段的案例类,其中xyOption[double]。我正在尝试根据以下两个条件过滤此列表:

val resFiltered = res.filter(c => (c.x.getOrElse(num) != num) && 
                                  (c.y.getOrElse(num) != num)
                             )

其中num实际上是一个随机数。我基本上是在过滤列表以摆脱Ax的字段为空的y的问题。有没有更优雅的方式做到这一点?谢谢。

根据我的搜索,this flatten approach可能很有用,但不支持这些字段。

1 个答案:

答案 0 :(得分:2)

您说xyOption[Double],所以它们不能为null。看起来这就是您的代码所做的...

.filter(c => c.x.nonEmpty || c.y.nonEmpty)

...但是如果您声明要“摆脱”(如果是“任一字段...”),则可能意味着应该使用&&而不是||