1

以下のコンパイルエラーメッセージを理解するのを手伝ってくれる人はいますか? 私はこれをしばらく見てきましたが、何が悪いのかわかりません。

  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
  }

エラーメッセージ:

オブジェクト Ordering のメソッド Tuple9 で始まる型 scala.math.Ordering[B] の暗黙的展開の発散

編集: クラス宣言は次のようになります。

  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
4

1 に答える 1

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))
于 2013-04-26T09:24:29.007 に答える