[英]What does this Scala type-parameter declaration mean? [A:B]
最近,我看到了一個類似於此定義的特征:
trait Server[T, Reader[_], Writer[_]] {
def read[Result:Reader](t: T): Result
def write[Result:Writer](r: Result): T
}
( 原始定義來自“ autowire”項目 )
[Result:Reader]
和[Result:Writer]
部分的確切含義是什么?
如何解釋? 讀者,作家和結果之間是什么關系?
結果-讀寫方法的類型參數化。 它可以是T,但是T已用於特征定義中,因此作者為類型形參選擇了更長的名稱。
:Reader和:Writer-表示它應該在Result類型范圍內的Reader和Writer類型類
有關上下文范圍的更多信息,請參見: http : //docs.scala-lang.org/tutorials/FAQ/context-and-view-bounds.html
可以這樣重寫:
trait Server[T, Reader[_], Writer[_]] {
def read[Result](t: T)(implicit reader: Reader[Result]): Result
def write[Result](r: Result)(implicit writer: Writer[Result]): T
}
但是,特質定義中根本不使用Result有點奇怪。 但是,完全可以。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.