2
試圖瞭解這種隱式發現的情況 - finding implicit of an argument's type。我複製粘貼正式例如到IDE中,只是改變了方法名MUL這樣的:斯卡拉隱式參數的類型查找失敗
class A(val n: Int) {
def mul(other: A) = new A(n + other.n)
}
object A {
implicit def fromInt(n: Int) = new A(n)
}
1 mul (new A(1))
現在,它會導致編譯錯誤說:
value mul is not a member of Int
我也嘗試過用字符串代替Int,這又導致編譯錯誤。
你能解釋我做錯了什麼部分嗎?
哇,非常感謝!這正是問題所在。應用隱式之前,方法名稱應該已存在於對象上。 –
非常有趣,當這種分辨率會有用嗎? – Mikel
@Mikel;這是個好問題。我不知道爲什麼/隱含的範圍規則是爲什麼決定的。對於瞭解這一點我有點驚訝。 – jwvh