0
でサブのクラスの特性におけるデフォルトの型クラスの実装私は次のような関係を持っている:Scalaの
trait Instrument
trait EquityOption extends Instrument { ... }
case class CallEquityOption(...) extends EquityOption
case class PutEquityOption(...) extends EquityOption
trait Priceable[I <: Instrument] { def price(I : Instrument) }
私はケースクラスCallEquityOption
とPutEquityOption
ためPriceable
のまったく同じ実装を使用することができます。 Call...
とPut...
の間の差異をmatch case
にすることにより、しかし、私がobject EquityOption
の下にPriceable[EquityOption]
として直接実装しようとすると、その型と正確に一致しないため暗黙的なものが見つかりません。
コードを複製する必要なく、どのように動作させることができますか?