オーバーライドされた適用/適用解除のためのルールまたはむしろ「ベスト プラクティス」が 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) 私がやろうとしていることを行う正しい方法は?
ありがとう!