【发布时间】:2014-05-18 14:22:53
【问题描述】:
有人可以解释一下 Scala 编译器试图通过下面的错误消息告诉我什么吗?
object Some {
def apply[T: ClassTag](data: T)(implicit ordering: Ordering[T]): T = data
}
object Other {
def apply[T: ClassTag](data: T)(implicit ordering: Ordering[T]): T =
Some(data)(ordering.reverse)
}
编译器说:
not enough arguments for method apply: (implicit evidence$2: scala.reflect.ClassTag[T], implicit ordering: Ordering[T])T in object Some. Unspecified value parameter ordering.
当我将ClassTag 添加到对象Some 中的方法时出现错误,以便在那里使用一些内部数组。最初,代码是(并且编译时没有错误):
object Some {
def apply[T](data: T)(implicit ordering: Ordering[T]): T = data
}
object Other {
def apply[T: ClassTag](data: T)(implicit ordering: Ordering[T]): T =
Some(data)(ordering.reverse)
}
我知道ClassTag 添加了一个隐含类型信息来克服擦除,但我不明白这与我的排序隐式参数有什么关系,或者为什么编译器突然认为排序没有价值......
【问题讨论】:
标签: scala scala-2.10