8
我在理解scala的類型範圍系統時遇到了一些麻煩。我想要做的就是保存類型T的項目,可以遍歷A型的項目我至今是一個holder類:Scala類型參數範圍
class HasIterable[T <: Iterable[A], A](item:T){
def printAll = for(i<-item) println(i.toString)
}
val hello = new HasIterable("hello")
本身成功編譯的類,但在嘗試創建在hello
值給我這個錯誤:
<console>:11: error: inferred type arguments [java.lang.String,Nothing] do
not conform to class HasIterable's type parameter bounds [T <: Iterable[A],A]
val hello = new HasIterable("hello")
^
我本來期望hello
解決在這種情況下,一個HasIterable[String, Char]
。這個問題如何解決?
會你介意解釋爲什麼這個工作(而另一個不)? – dhg
這對我有用,謝謝!是的,爲什麼<%在這種情況下工作? --aha我看到你的編輯。謝謝:) – Dylan
@pelotom:很好的解釋。謝謝! – dhg