このコード:
trait Base[+K <: Option[Int]] {
val a: K = None
}
class GuaranteedA extends Base[Some[Int]] {
override val a = Some(1)
}
エラーが発生します:
<console>:8: error: type mismatch;
found : None.type
required: K
val a: K = None
しかし、なぜ?の型制約は、のサブタイプである必要があるKと述べています。KOption[Int]Noneval a: K = Some(0)Base
私はこの動作に非常に混乱しており、なぜこれが起こるのかわかりません. 多分あなたは私を助けることができます?