169 похожих чатов

Всем привет. Есть какой-нибудь правильный вариант копирования значений с одного

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

4 ответов

16 просмотров

в твоем случае просто Bar(foo.name, foo.age, "") будет достаточно

Замечание по коду -- b.copy(...) возвращает новый Bar, а не изменяет внутри b, поэтому присланный код всегда будет возвращать bar

Привет, Олжас. Насколько ты ощущаешь, что готов к shapeless?

Вот явный фикс. https://scastie.scala-lang.org/Odomontois/3h2mCvMcRxy78erM71pY4w/1 Но можно на автомате такое проделывать

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта