Я немного растерялся из-за того, что исключил класс case, в котором есть куча Option.
Мой класс case - это Person, который выглядит следующим образом:
case class Person(name: String, metadata: Option[Metadata])
case class Metadata(contacts: Option[List[Contact]])
case class Contact(id: Int, isAvailable: Option[Boolean])
what I хочу, чтобы взять опцию Person и сделать копию этого человека, но с контактами isAvailable равно true.
, поэтому, если у нас есть объект ниже:
Some(
Person(
"John",
Some(
Metadata(
Some(
List(
Contact(1, Some(true)),
Contact(2, None),
Contact(3, Some(false)),
Contact(4, Some(true))
)
)
)
)
)
)
результат будет :
Some(
Person(
"John",
Some(
Metadata(
Some(
List(
Contact(1, Some(true)),
Contact(4, Some(true))
)
)
)
)
)
)
как бы ты это сделал?