As far as I know, there is no such thing, although you can do it through an implicit conversion:
implicit class ListOps[A](self: List[A]) extends AnyVal {
def updateIf(predicate: A => Boolean, mapper: A => A): List[A] = {
self.map(el => if (predicate(el)) mapper(el) else el)
}
}
Test:
@ case class Person(name: String, age: Int, qualified: Boolean = false)
defined class Person
@ val people = List(Person("A", 3, false), Person("B", 35, false))
people: List[Person] = List(Person("A", 3, false), Person("B", 35, false))
@ people.updateIf(_.age >= 25, _.copy(qualified=true))
res3: List[Person] = List(Person("A", 3, false), Person("B", 35, true))
source
share