相关疑难解决方法(0)

如何设置隐式转换以允许数字类型之间的算术运算?

我想实现一个类C来存储各种数值类型的值,以及布尔值.此外,我想能够在这个类的实例操作,类型之间,转换在必要Int --> DoubleBoolean -> Int,即,能够添加Boolean + Boolean,Int + Boolean,Boolean + Int,Int + Double,Double + Double等等,返回最小的可能类型(IntDouble可能的),只要.

到目前为止,我想出了这个:

abstract class SemiGroup[A] { def add(x:A, y:A):A }

class C[A] (val n:A) (implicit val s:SemiGroup[A]) {
  def +[T <% A](that:C[T]) = s.add(this.n, that.n)
}

object Test extends Application {
  implicit object IntSemiGroup extends SemiGroup[Int] { 
    def add(x: Int, y: Int):Int = x + y …
Run Code Online (Sandbox Code Playgroud)

types scala numeric

9
推荐指数
1
解决办法
1192
查看次数

标签 统计

numeric ×1

scala ×1

types ×1