Scala在哪里尋找植入?阿隱式對于Scala的新手來說,問題似乎是:編譯器在哪里尋找隱式?我的意思是含蓄的,因為這個問題似乎從來沒有完全形成,好像沒有語言。-)例如,integral從下面來?scala> import scala.math._import scala.math._
scala> def foo[T](t: T)(implicit integral: Integral[T]) {println(integral)}foo: [T](t: T)(implicit integral:
scala.math.Integral[T])Unitscala> foo(0)scala.math.Numeric$IntIsIntegral$@3dbea611
scala> foo(0L)scala.math.Numeric$LongIsIntegral$@48c610af對于那些決定學習第一個問題的答案的人來說,另一個問題是編譯器如何選擇在某些明顯含糊不清的情況下使用哪一個隱式(但無論如何都是編譯)?例如,scala.Predef定義兩個轉(zhuǎn)換String*一至WrappedString另一個StringOps..然而,這兩個類共享許多方法,那么為什么Scala在調(diào)用時不抱怨模糊性map?注:這個問題是由另一個問題,希望能更全面地說明這個問題。該示例是從那里復(fù)制的,因為答案中引用了該示例。
2 回答

守著一只汪
TA貢獻1872條經(jīng)驗 獲得超4個贊
1)通過本地聲明、導(dǎo)入、外部作用域、繼承、不帶前綴可訪問的包對象,引出當前調(diào)用范圍可見的內(nèi)容。 2) 隱范圍
,它包含所有類型的伴隨對象和包對象,這些對象與我們搜索的隱式類型(即類型的包對象、類型本身的伴生對象、類型構(gòu)造函數(shù)(如果有的話)、參數(shù)(如果有的話)以及它的超類型和超特征之間有某種關(guān)系)。
- 2 回答
- 0 關(guān)注
- 577 瀏覽
添加回答
舉報
0/150
提交
取消