Scala: Реализация подтипа Числовых [T]

Как каждый идет о реализации подтипа Числовых [T]? Я искал в руководстве по этому, но не нашел никого. Пример подтипов мог быть Рациональным или Сложным?

Заранее спасибо Troels

7
задан Thomas Jung 16 February 2010 в 18:25
поделиться

2 ответа

Абсолютно бесполезная числовая строка:

trait StringIsNumeric extends Numeric[String] {
  def plus(x: String, y: String): String = "%s+%s" format (x, y)
  def minus(x: String, y: String): String = "%s-%s" format (x)
  def times(x: String, y: String): String = "%s*%s" format (x, y)
  def quot(x: String, y: String): String = "%s/%s" format (x, y)
  def rem(x: String, y: String): String =  "%s%%s" format (x, y)
  def negate(x: String): String = "-%s" format (x)
  def fromInt(x: Int): String = x.toString
  def toInt(x: String): Int = 0
  def toLong(x: String): Long = 0L
  def toFloat(x: String): Float = 0.0f
  def toDouble(x: String): Double = 0.0
}
implicit object StringIsNumeric extends StringIsNumeric with Ordering.StringOrdering


def x[T: Numeric](t1 : T, t2 : T)  = {
  val n = implicitly[Numeric[T]]
  import n._
  t1 * t2
}
scala> x("a","b")
res0: java.lang.String = a*b
16
ответ дан 6 December 2019 в 11:49
поделиться

Я добавил Real в Scalaz с экземплярами Real [Double] и Real [Dual] .

Мне было удобно сделать fromDouble неявным

1
ответ дан 6 December 2019 в 11:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: