2013-07-28 70 views

回答

1

這與高等親類型無關。問題是,IRevisionControl需要知道T?如果沒有,你可以使用一個存在的類型

trait Revision[RevisionType] 
trait RevisionLog 

trait RevisionControl[R <: Revision[_], L <: RevisionLog] 

如果需要T,你要麼將其添加爲另一種類型的參數...

trait RevisionControl[T, R <: Revision[T], L <: RevisionLog] 

...或者你使用類型成員在Revision ...

trait Revision { 
    type RevisionType 
} 

trait RevisionControl[R <: Revision, L <: RevisionLog] { 
    def foo: R#RevisionType = ??? 
}