は、Exception.allCatch
は一部のScalaメソッドで、Any/Nothingを使用する代わりに多態的な引数を使用するのはなぜですか?例えば
def allCatch[T]: Catch[T]
として定義されているのはなぜだけではなく、
val allCatch: Catch[Nothing]
Catch
は、その引数で共変です
あるいは、なぜPartialFunction
オブジェクトが
def empty[A, B]: PartialFunction[A, B]
だけではなく
val empty: PartialFunction[Any,Nothing]
を定義しますか?
更新:これまでのところ、回答が不足しているようです。だから、実際に質問を対象とする具体的な例を回答に含めてください。例:def empty[A, B]: PartialFunction[A, B]
で動作するコードを表示しますが、val empty: PartialFunction[Any,Nothing]
では動作しません(あまり便利ではありません)。
あなたの質問を更新して、それが重要な理由を含めるべきだと思います。 – nilskp
@nilskp私はライブラリのデザインが好きです。特に、私自身のコードを作成するときには、多態的なバリアントか 'Any/Nothing'を持つバリアントを使うべきですか? –