PartialFunction の関数定義は次のとおりです。
trait PartialFunction[-A, +B] extends (A) ⇒ B
PartialFunction を使用すると、コレクションcase
で withを使用してフィルタリングできます。collect
たとえば、コレクション内の値が偶数の場合に String に変換される整数のリストと PartialFunction isEven[Int, String] がある場合。そのため、定義に戻り値の型を持つ新しいコレクションが返さ+B
れます。
私の質問は、なぜcontravariant -A
ですかcovariance +B
?基本的に、任意の入力から任意の出力を受け入れる機能があります。入力が任意の型または型 A のスーパー型であり、戻り値の型が B またはそのサブクラスであることを示す必要があるのはなぜですか? ただ言うことはできません:
trait PartialFunction[A, B]