以一个具体的方法为例,
def df(f: Float => Float, dt: Float) = (t: Float) => f(t + dt) - f(t)
它可以编译和工作。但是,当我尝试以通用方式定义它时,
def df[T](f: T => T, dt: T) = (t: T) => f(t + dt) - f(t)
编译器说,
“错误:类型不匹配;找到:T;必需:String def df[T](f: T => T, dt: T) = (t: T) => f(t + dt) - f(t)” .
似乎无法添加类型 T。然后我尝试了另一种方法,
def df[T <: Double](f: T => T, dt: T) = (t: T) => f(t + dt) - f(t)
又失败了,
scala> def df[T <: Double](f: T => T, dt: T) = (t: T) => f(t + dt) - f(t)
<console>:7: error: type mismatch;
found : Double
required: T
def df[T <: Double](f: T => T, dt: T) = (t: T) => f(t + dt) - f(t)
^
现在我所有的把戏都用完了。
我怎样才能做到?