Scala:过滤包含Option字段的案例类列表

问题描述 投票:0回答:1

我有一个List[A],其中A是一个案例类,有许多领域,xyOption[double]。我试图根据以下两个条件筛选此列表:

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

其中num实际上是一个随机数。我基本上过滤列表以摆脱As xy的任何字段为空。有更优雅的方式吗?谢谢。

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

scala null option flatten
1个回答
2
投票

你说xyOption[Double]所以他们不能为空。看起来这就是你的代码所做的......

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

...但你说你要“摆脱”如果“任何一个领域......”,这可能意味着应该使用&&而不是||

© www.soinside.com 2019 - 2024. All rights reserved.