Я хочу выполнить только одно преобразование, в результате которого я получаю кортеж (Array[Person], Array[Person])
на основе выполнения условного оператора, в котором разделение основано на true, false
.
Так что что-то вроде .filter
, который разделяет вывод на основе true, false
, а не только true
.
В настоящее время у меня есть это, но я хочу сделать это в одном заявлении.
case class Person(age: Int)
val persons: Array[Person] = Array(Person(15), Person(17), Person(30), Person(35))
val adults: Array[Person] = persons.filter(p => isAdult(p.age))
val kids: Array[Person] = persons.filter(p => !isAdult(p.age))
def isAdult(age: Int): Boolean = age > 18
Возможно ли с помощью некоторого API коллекции сделать это за одну операцию?
Да вот так
persons.partition(p => isAdult(p.age))
вы можете использовать метод partition
.
Нравиться
persons.partition(p => isAdult(p.age))
.