Scala发散隐式扩展编译器错误

Scala发散隐式扩展编译器错误,scala,Scala,有人能帮我理解下面的编译错误信息吗?我已经看了一段时间了,我不明白怎么了 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(_.wei

有人能帮我理解下面的编译错误信息吗?我已经看了一段时间了,我不明白怎么了

  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 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))

嗨-我认为这很大程度上取决于叶的定义-只是复制了你的示例并推断出类叶可能看起来像这样:case-class-Leaf-weight:Char,freq:Int,它对我来说很好。另外,您使用的是什么scala版本2.10、2.9?更新了我的答案以说明类定义您使用的是哪个scala版本?-或者:您能用Scala 2.10.1和clean compile再试一次吗似乎与2.10一起工作,因为我没有任何问题-沃斯普林以及下面的答案。我想这是我的版本,即2.8中的一个错误
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))