在 Scala 中保存当前状态

save current state in Scala

假设我有一个 class 的实例,我想复制并保存项目的当前状态,有没有不使用 copy() 方法的方法?如果我只是将 class 实例保存在变量中的某个位置,那么当原始状态发生变化时它的状态也会发生变化,但我不希望这种情况发生。 有人知道我如何保存当前的 class 实例而不改变它,这样每当我想再次使用它时,我希望 class 实例与何时完全相同我保存了吗?

复制 case class 的最佳方法是使用 copy。如果这是不可接受的(无论出于何种原因),那么您必须创建一个具有相同值的 case class 的新实例。

但是您遇到这个问题只是因为您在 class 中使用了可变值。保持数据 类 不可变要好得多,这样您就知道这些值不会在您脚下改变。如果您需要更改值,请创建一个具有不同值的新实例并使用它,保持原始值不变。

学习以函数式方式编写没有可变值的代码需要一段时间,但这是值得的!