これは definetrait Option[T]
が と同じであることを意味しますtrait Option[+T]
。
インスタンスを指すことができるのと同じようval humanOpt: Option[Human]
に、インスタンスを指すことができると考えるのは簡単です。Option[Student]
val humanOpt: Human
Student
多分それは奇妙に思えるかもしれませんが、なぜ私はこれを考えるのですか?
Java 変数のデフォルトは c++ と比較してポリモーフィズムとしてキーワードを使用する必要がありますvirtual
。Java で OO を簡素化するための重要なポイントだと思います。
Scala は Java と比較してより頻繁に使用される多くのユースケースで高次型を使用したりOption
、自分 Try
で a を定義したりします。Cache[T]
その上、それは依然としてリスコフ置換原則に準拠しています。
共変をデフォルトの動作として単純化しない理由を知りたいだけですか?