假设我有一个 Scala 案例类,如下所示:
case class Item(
roundedValue: Double = 0.00)
每次更新变量时,我都想对 roundedValue 执行以下舍入操作:
roundedValue = math.round(roundedValue*100)*0.01
在其他语言中,我只会覆盖 roundedValue 的设置器,但似乎我无法覆盖案例类变量的设置器,否则它不会编译。
我见过的一种解决方案是将 roundedValue 重命名为 _roundedValue 并将其设为私有,然后添加公共方法来模拟 getter 和 setter(使用舍入逻辑):Overriding setter on var
然而,当使用命名参数时,这使得案例类的构造函数使用非常尴尬。有没有其他方法可以做到这一点,或者这是 Scala 中案例类的限制?