我正在尝试编写一个通用interpolate
方法,该方法适用于具有两个方法 a*
和 a 的任何类型+
,如下所示:
trait Container {
type V = {
def *(t: Double): V
def +(v: V): V
}
def interpolate(t: Double, a: V, b: V): V = a * (1.0 - t) + b * t
}
这不起作用(在 Scala 2.8.0.RC7 上),我收到以下错误消息:
<console>:8: error: recursive method + needs result type
def +(v: V): V
^
<console>:7: error: recursive method * needs result type
def *(t: Double): V
^
如何正确指定结构类型?(或者有更好的方法吗?)