我想知道Scala中是否有规则或者“最佳实践”来覆盖应用/取消应用。我特别感兴趣的是拥有以下属性是否是一个好主意:
给定案例类 C(x: T),对于所有 x,Some(x) == C.unapply(C.apply(x))。
我问的原因是因为我计划使用以下代码来确保 BigDecimal 的精度为 16。
class BoundedBigDecimal(private val bd: BigDecimal) extends Proxy {
val self: BigDecimal = bd setScale (BoundedBigDecimal.PRECISION)
}
object BoundedBigDecimal {
val PRECISION = 16
def apply(bd: BigDecimal) = new BoundedBigDecimal(bd)
def unapply(bbd: BoundedBigDecimal) = Some(bbd.self)
}
如您所见,该属性不一定在这里。
是吗:
1)理想情况下应该在一般情况下强制执行的属性?
2)做我想做的事情的正确方法?
谢谢!