generic-variance

    5

    2答えて

    私はコレクション/シーケンスの任意の型を保持IDictionary<K, S<V>>を変換する拡張メソッドを記述しようとしている(S<V>)で、より適切なデータ構造であるILookup<K, V>へそのような場合。理想的には、私は別の書きたくないなど IDictionary<K, IEnumerable<V>> IDictionary<K, List<V>> IDictionary<K, ICol

    2

    1答えて

    私は非常に単純明快なものを書くのが難しいですが、私は正しい構文を得ることができません。 私は食品のクラス階層があります。 Food :> Vegetable :> Bamboo や動物用: Animal :> Herbivore :> Panda そしてパンダが食べることができないように私は、動物で食べる方法を定義しようとしているが一般的な野菜、竹のみ。現時点では、私のコードは次のようにな

    6

    1答えて

    coursera関数型プログラミングコースでは、私は微妙な概念に出くわしました。 場合A2 <:A1とB1 <:B2、次いで(A1 => B1)<:(A2 => B2) 正当 私たちはA2に引数を渡し、サブタイプの関係のために同じ引数をA1に渡すことができます。 次に適用する関数A1 => B1 次に、その機能がB1を与え、なぜなら私たちは、このためのベン図を描く場合はB2 としての資格をサブタイ

    1

    1答えて

    型分散を持つ別の(単純)トラブル: Trouble with type variance が短い(本当に)長い話をカットするには、この: class A[-P, T <: P] コンパイルされません(「Pはタイプ<:タイプPの共変位置にあります」という文句を言います)。 私の以前の質問に対する答えは、A[Foo, Bar]がA[Nothing, Bar]のサブクラスになるが、後者は無効である(

    0

    1答えて

    との混同がコメントでエラーメッセージを参照してください。 interface Printable {} class Book(val title: String) :Printable fun bookPrint(b: Book?):String = "Title: " + b?.title class Author(val name: String) :Printable fun