как я могу использовать метод копирования для классов case в списке этого класса case?

#list #scala #functional-programming #case-class

#Список #scala #функциональное программирование #класс case

Вопрос:

У меня есть список записей (record — это класс case). Я пытаюсь одновременно обновить все записи в списке (используя функцию копирования) и вернуть список обновленных записей. Я пытался использовать метод foreach, но это не позволяет мне создать список в результате.

Это то, что я пробовал до сих пор, я не уверен, что что-то из этого правильно

 def update_record(record: List[Rec]): List[Rec] = {
  val result = record.foreach(r => {
    r.copy(firstname = get_firstname(r, record), lastname = get_lastname(r, record))
  })
  result
}
  

но в результате не создается список, поэтому я не уверен, что теперь делать.

Ответ №1:

Вам просто нужно использовать map вместо foreach .

 def update_record(record: List[Rec]: List[Rec] =
  record.map { r =>
    r.copy(firstname = get_firstname(r, record), lastname = get_lastname(r, record))
  }
  

В любом случае, было бы неплохо следовать какому-нибудь руководству или курсу или прочитать книгу об этом языке. Это всего лишь базовые знания стандартной библиотеки.

Некоторые ссылки, которые могут быть полезны: