Scala: фильтрация списка классов дел с полями Option - PullRequest
0 голосов
/ 19 апреля 2019

У меня есть List[A], где A - это класс дел с несколькими полями, из которых x и y равны Option[double]. Я пытаюсь отфильтровать этот список на основе следующих двух условий:

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

, где num действительно случайное число. Я в основном фильтрую список, чтобы избавиться от A s, которые либо поля x или y являются нулевыми. Есть ли более элегантный способ сделать это? Спасибо.

Исходя из моего поиска, этот уплощенный подход может быть полезен, но он не поддерживает поля.

1 Ответ

2 голосов
/ 19 апреля 2019

Вы говорите, x и y равны Option[Double], поэтому они не могут быть нулевыми.Похоже, это то, что делает ваш код ...

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

... но вы заявляете, что хотите "избавиться" от "любого поля ...", что может означать, что && следует использовать вместо ||.

...