Scala:使用选项字段过滤案例 class 的列表
Scala: Filtering List of case class with fields of Option
我有一个 List[A]
,其中 A
是一个案例 class,其中包含多个字段,其中 x
和 y
是 Option[double]
.我正在尝试根据以下两个条件过滤此列表:
val resFiltered = res.filter(c => (c.x.getOrElse(num) != num) &&
(c.y.getOrElse(num) != num)
)
其中 num
实际上是一个随机数。我主要是过滤列表以去除 x
或 y
字段为空的 A
。有没有更优雅的方式来做到这一点?谢谢。
根据我的搜索,this flatten approach 可能很有用,但它不支持这些字段。
你说 x
和 y
是 Option[Double]
所以它们不能为空。看起来这就是您的代码所做的...
.filter(c => c.x.nonEmpty || c.y.nonEmpty)
...但是您声明如果 "either field..." 您想要 "get rid of",这可能意味着应该使用 &&
而不是 ||
。
我有一个 List[A]
,其中 A
是一个案例 class,其中包含多个字段,其中 x
和 y
是 Option[double]
.我正在尝试根据以下两个条件过滤此列表:
val resFiltered = res.filter(c => (c.x.getOrElse(num) != num) &&
(c.y.getOrElse(num) != num)
)
其中 num
实际上是一个随机数。我主要是过滤列表以去除 x
或 y
字段为空的 A
。有没有更优雅的方式来做到这一点?谢谢。
根据我的搜索,this flatten approach 可能很有用,但它不支持这些字段。
你说 x
和 y
是 Option[Double]
所以它们不能为空。看起来这就是您的代码所做的...
.filter(c => c.x.nonEmpty || c.y.nonEmpty)
...但是您声明如果 "either field..." 您想要 "get rid of",这可能意味着应该使用 &&
而不是 ||
。