更改List对象值的最佳方法是什么?

时间:2014-12-01 13:05:36

标签: list scala functional-programming

我有一个保存对象的函数,我需要获取新的id,在列表的所有对象中设置此id并保存列表的对象。

我来自OO,我试图尽力达到功能范式......所以为了不违反不可改变的规则,我正在思考两种方法:

  • 创建一个新列表并在构造函数上定义id,调用db上持久存储的函数;
  • 更改函数签名以接收id并使用此id继续db;

最好的方法是什么?

提前感谢。

1 个答案:

答案 0 :(得分:4)

如果我理解你的问题,这是一种做法。

例如,您有一个Person对象列表

case class Person( id : Int, name : String, age : Int) 

val persons : List[Person] 

现在,如果您想为所有人设置id = 100,您可以使用地图并复制案例类。

val changedPersons = persons.map( p => p.copy(id) ) 

注意changedPersons是一个新列表,您可以保存或执行其他任何操作。