有人可以帮我理解下面的编译错误消息吗?我一直在看这个问题一段时间,我不明白什么是错的。
def makeOrderedLeafList(freqs: List[(Char, Int)]): List[Leaf] = {
val buff = ListBuffer[Leaf]();
for(u<-freqs) {
val v = new Leaf(u._1, u._2)
buff += v
}
buff.toList.sortBy(_.weight) //<= offending line
}
错误讯息:
对于类型scala.math.Ordering [B]开始的隐式扩展 使用对象排序中的方法Tuple9
编辑: 类声明如下:
abstract class CodeTree
case class Fork(left: CodeTree, right: CodeTree, chars: List[Char], weight: Int) extends CodeTree
case class Leaf(char: Char, weight: Int) extends CodeTree
答案 0 :(得分:0)
在scala 2.10.0上为我工作
import scala.collection.mutable._
然后粘贴上面提供的代码。 makeOrderedLeafList
编译时没有错误,似乎以预期的方式工作:
scala> makeOrderedLeafList(List(('a',8),('b',9),('c',99),('d',1)))
res0: List[Leaf] = List(Leaf(d,1), Leaf(a,8), Leaf(b,9), Leaf(c,99))