このコード:
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
と述べています。K
Option[Int]
None
val a: K = Some(0)
Base
私はこの動作に非常に混乱しており、なぜこれが起こるのかわかりません. 多分あなたは私を助けることができます?