case class на другой, если имена параметров одинаковы? Пока придумал только вариант вручную все делать
case class Foo(name: Option[String], age: Option[Int])
case class Bar(name: Option[String], age: Option[Int], smt: String)
def fullfill(foo: Foo, bar: Bar): Bar = {
var b = bar
if (foo.name.isDefined) b.copy(name = foo.name)
if (foo.age.isDefined) b.copy(age = foo.age)
b
}
https://scastie.scala-lang.org/OYZOVP43RvStN8HuzU8rUQ
в твоем случае просто Bar(foo.name, foo.age, "") будет достаточно
Замечание по коду -- b.copy(...) возвращает новый Bar, а не изменяет внутри b, поэтому присланный код всегда будет возвращать bar
Привет, Олжас. Насколько ты ощущаешь, что готов к shapeless?
Вот явный фикс. https://scastie.scala-lang.org/Odomontois/3h2mCvMcRxy78erM71pY4w/1 Но можно на автомате такое проделывать
Обсуждают сегодня