私はいくつかのパラメータ化されたクラスC [T]を作成しています。私は、T型の特性のいくつかの要件を自分のクラスのパラメータにできるようにしたいと考えています。私は、Tが特質やクラスから継承されていると言いたいのは簡単です(Orderingと同様)。しかし、私はそれもいくつかの機能を実装したい。Scala:ジェネリッククラスの型パラメータの要件を作成するには?
たとえば、私は多くの事前定義された型がMinValueとMaxValueを実装しているのを見てきました。暗黙の関数を定義するだけのアドバイスを受けました。しかし、すでに実装されている場合、すべてのユーザーがこれらの機能を実装することを義務づけられたのは嫌です。私も自分のコードでそれらを実装することができますが、それはちょうど貧弱な迅速な修正であるようです。
たとえば、ヒープを定義するときに、ユーザーが空のヒープを作成できるようにしたいと考えています。これらのケースでは、タイプTが持つ可能性のある最小値で値を定める必要があります。明らかにこのコードは動作しません。
class Heap[T](val value:T,val heaps:List[Heap[T]]){
def this()=this(T.MinValue,List())
}
また、本当に良いオンラインのScala 2.8リファレンスについてのアドバイスを受けたいと思います。
あなたでした(擬似)コードの例であなたが何をしているのかを明確にしますか?あなたは何を試しましたか、なぜそれは機能しませんでしたか? –
Scalaのリソースへのリンクについては、http://stackoverflow.com/questions/68074/good-way-to-learn-scalaを参照してください。 –
タイプ境界について読んでみてください。コード例があります:https://gist.github.com/257758/47f06f2f3ca47702b3a86c76a5479d096cb8c7ec –