1

scala specificationには、分散と下限に関する記述があります:

型宣言または型パラメーターの下限の分散位置は、型宣言または型パラメーターの分散位置の反対です。

44ページにあります。

なんとなくわかるのですが、うまく説明できません。それについて詳しく説明していただけますか?

4

1 に答える 1

2

基本的に、下限は不変または反変でなければなりません。これらを比較すると、次のようにコンパイルされます。

class Good1[-A, B >: A]
class Good2[-A, B >: A]

そして、これはそうではありません:

class Bad1[+A, B >: A]

許可されている場合Bad1は、次のことができます。

val worse: Bad1[Any, Int] = new Bad1[Int, Int]

Int >: Anyこれは、それが間違っていることを意味します。

于 2014-04-30T15:31:36.890 に答える