0
假設我有以下階代碼:隱式參數不起作用
trait ValueSource[A] {
def value(a: Int): A
}
trait ValueSourceOps[A] {
def self: Int
def F: ValueSource[A]
def value: A = F.value(self)
}
trait ToValueSourceOps {
implicit def toValueSourceOps[A](index: Int)(implicit F0: ValueSource[A]): ValueSourceOps[A] = new ValueSourceOps[A] {
def self = index
def F: ValueSource[A] = F0
}
}
object Test extends ToValueSourceOps {
def value[A: ValueSource](index: Int): A = toValueSourceOps(index).value
}
以上代碼編譯很好,但是當我改變的最後一行(在對象的試驗方法「值」的機構)
def value[A: ValueSource](index: Int): A = index.value
編譯器抱怨 無法爲參數F0發現隱含的價值:ValueSource [A]
在我看來,Def值[A:ValueSource]意味着我有一個病理意義cit值「ValueSource [A]」,那爲什麼編譯失敗?