在 Scala 中保存当前状态
save current state in Scala
假设我有一个 class 的实例,我想复制并保存项目的当前状态,有没有不使用 copy() 方法的方法?如果我只是将 class 实例保存在变量中的某个位置,那么当原始状态发生变化时它的状态也会发生变化,但我不希望这种情况发生。
有人知道我如何保存当前的 class 实例而不改变它,这样每当我想再次使用它时,我希望 class 实例与何时完全相同我保存了吗?
复制 case class
的最佳方法是使用 copy
。如果这是不可接受的(无论出于何种原因),那么您必须创建一个具有相同值的 case class
的新实例。
但是您遇到这个问题只是因为您在 class
中使用了可变值。保持数据 类 不可变要好得多,这样您就知道这些值不会在您脚下改变。如果您需要更改值,请创建一个具有不同值的新实例并使用它,保持原始值不变。
学习以函数式方式编写没有可变值的代码需要一段时间,但这是值得的!
假设我有一个 class 的实例,我想复制并保存项目的当前状态,有没有不使用 copy() 方法的方法?如果我只是将 class 实例保存在变量中的某个位置,那么当原始状态发生变化时它的状态也会发生变化,但我不希望这种情况发生。 有人知道我如何保存当前的 class 实例而不改变它,这样每当我想再次使用它时,我希望 class 实例与何时完全相同我保存了吗?
复制 case class
的最佳方法是使用 copy
。如果这是不可接受的(无论出于何种原因),那么您必须创建一个具有相同值的 case class
的新实例。
但是您遇到这个问题只是因为您在 class
中使用了可变值。保持数据 类 不可变要好得多,这样您就知道这些值不会在您脚下改变。如果您需要更改值,请创建一个具有不同值的新实例并使用它,保持原始值不变。
学习以函数式方式编写没有可变值的代码需要一段时间,但这是值得的!