共変性と反変性
#型
https://ja.wikipedia.org/wiki/共変性と反変性_(計算機科学)
共変
:戻り値の型に使われる
反変
:引数の型に使われる
非変
php
では7.4から
共変
と
反変
がサポートされた
https://www.php.net/manual/ja/language.oop5.variance.php
戻り値が
共変
子クラスのメソッドが、親クラスの戻り値よりも、より特定の、狭い型を返すことを許す
引数が
反変
子クラスのメソッドが、親クラスのものよりも、より抽象的な、広い型を引数として受け入れることを許す
Scala
標準ライブラリの1引数関数の型
trait Function1[-T, +R]
もそうなっている
Scalaの型パラメータの変位指定