Мне интересно, существует ли правило Scala для перераспределения, применяемое/не применяемое правило. Меня особенно интересует, имеет ли смысл иметь следующее свойство:Scala - примените правила неприменимости
Данный класс case C (x: T) для всех x, Some (x) == C.unapply (C.apply (Икс)).
Я спрашиваю потому, что в следующем коде я планирую использовать для обеспечения 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) Правильный способ делать то, что я пытаюсь сделать?
Спасибо!
Спасибо за ваш ответ! На самом деле, дело не в том, чтобы проверить, равна ли точность 16, а в том, чтобы заставить каждое значение BigDecimal иметь максимум точности 16. Вот почему я определяю этот BoundedBigDecimal, так что BoundedBigDecimal (1.1111111111111111111111111111111111) становится 1.111111111111111111. Извините, если мой вопрос был неясен ... – user510159
см. Мой обновленный пост, если это работает для вас: D –