我试图在Scala中创建一个通用函数,但语法不能正常工作。是否有人可以详述原因?
def max1[B](a1 : B, b1 : B) : B = {
if (a1 < b1) a1 else b1
}
答案 0 :(得分:0)
这不会编译,因为编译器不知道类型B
具有可以调用的>
方法。
如果编译器可以找到&#34;证据&#34;类型B
具有某种排序原则,然后证据可用于对B
的实例进行操作。
def maxb[B](x: B, y: B)(implicit ev: Ordering[B]): B = ev.max(x, y)