Fight the Future

Java言語とJVM、そしてJavaエコシステム全般にまつわること

IT勉強会での初プレゼンなどお助けします!

勉強会でスピーカーをやりたいけど、プレゼンが初めて、苦手という方に無償でコーチできます。スライドのレビューや録画したリハへのアドバイスなどなど。Twitter@jyukutyoまでメンションでもDMでもお気軽にご連絡ください。

私はIT講師の経験があり、プレゼンはデブサミやJJUG CCCなど200人規模の経験が豊富で最大800人の前でプレゼンしました。海外ではDevoxxUSで。デブサミ2017では公募スピーカー1位、デブサミ関西2012アワードで5位となりました。

ScalaのジェネリックとVariance

プログラミング言語 Scala Wiki 8.2 Variance Annotations
とても勉強になる。
翻訳してくださった方、ありがとうございます。


Scalaの公式サイトのドキュメント、どこに何が書いてあるかまだイマイチわからないから。。


Varianceは共変ってことなんだけど、ジェネリックと共変は関連が強い概念。
Javaでも共変戻り値が可能になったのはたしかジェネリクスが導入されたJava 5からじゃなかったっけ。


Scalaには共変と、逆の反変もある。
記法は+が共変で-が反変。A[+S]とかA[-S]とか。


もちろんScalaにも上限境界と下限境界がある。
A[S <: U]、A[S >: L]みたいな書き方。


ちなみに。

A[B[S], C[S]]

A[B[_], C[_]]

は同じ意味。