このイディオム (?) は、階段の本の中で何度も出てきます。
val b:A = new B
また
val b = new B
val b2:A = b
教科書でいくつかの点を指摘しようとする以外に、何かの推論された型とは異なる型を宣言したいのはなぜですか?
ところで、これに何か名前はありますか?
このイディオム (?) は、階段の本の中で何度も出てきます。
val b:A = new B
また
val b = new B
val b2:A = b
教科書でいくつかの点を指摘しようとする以外に、何かの推論された型とは異なる型を宣言したいのはなぜですか?
ところで、これに何か名前はありますか?
次の場合に役立ちます。
より複雑なインスタンス化の場合、推論された型が正しいものであることを保証します。例えば
sealed trait Answer
case object Yes extends Answer
case object No extends Answer
scala> val a = List( Yes, Yes, No )
a: List[Product with Serializable with Answer] = List(Yes, Yes, No)
scala> val b: List[Answer] = List( Yes, Yes, No )
b: List[Answer] = List(Yes, Yes, No)
私はそれがインターフェースに対するプログラミングのイディオムに似ていると主張します。することによって
val b:A = new B
その後は、によって提供されるインターフェイス以外に依存していないことを確認してくださいA
。つまり、何も変更しないことにした場合でも、問題が発生することが保証されますb:A = new C
。