Я получаю следующую ошибку при попытке скомпилировать это:
Btree.scala: 9: ошибка: не удалось найти неявное значение для упорядочения параметров: упорядочение [K] абстрактный класс Node [K, V] расширяетсяTreeMap [K, V]
TreeMap должен принимать неявное значение Ordering [A], которое я предоставляю.Возможно, неявный параметр должен быть в объекте Tester, где создается экземпляр Btree (TreeMap)?Я бы предпочел оставить неявное объявление внутри класса Btree, потому что хотел бы, чтобы в Ordering был тип K, реализующий Comparable [K].Есть смысл?
package disttree {
import scala.collection.immutable.TreeMap
class Btree[K <: Comparable[K],V](fanout:Int) {
implicit object DefaultOrder extends Ordering[K] {
def compare(k1: K, k2: K) = k1 compareTo k2
}
abstract class Node[K,V] extends TreeMap[K,V]
class InnerNode[K,V] extends Node[K,V]
class LeafNode[K,V] extends Node[K,V]
val root = new InnerNode[K,V]()
def search(n: Node[K,V], key: K): Option[(K,V)] = {
return n.find(_ == key)
}
def insert(key: K, value: V) { }
def delete(key: K) { }
}
}
import disttree._;
object Tester {
def main(args: List[String]) = {
var t = new Btree[Int, Any](2)
t.insert(1, "goodbye")
Console.println(t)
}
}