簡體   English   中英

具有許多類型參數的Type類

[英]Type Class with many type parameters

我有一些類型參數的功能。 如何告訴編譯器這些類型實際上在類型類中?

trait Sizeable[-T, +R] {
  def mySize(x: T): R
}

implicit object StringSize extends Sizeable[String, Int] {
  def mySize(s: String) = s.length
}

def sum[T, R: Sizeable[T, R]](xs: List[T]): R =  xs.map(x => x.mySize)

錯誤是:

Error:(9, 14) A$A40.this.Sizeable[T,R] does not take type parameters 
def sum[T, R: Sizeable[T, R]](xs: List[T]): R =  xs.map(x => x.mySize);}

在這種情況下,您不能使用上下文綁定。 您必須顯式編寫隱式參數:

def foo[T, R](xs: List[T])(implicit sizeable: Sizeable[T,R]): List[R] =
  xs.map(x => sizeable.mySize(x))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM