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定義兩個轉換String*一至WrappedString另一個StringOps..然而,這兩個類共享許多方法,那么為什么Scala在調用時不抱怨模糊性map?注:這個問題是由另一個問題,希望能更全面地說明這個問題。該示例是從那里復制的,因為答案中引用了該示例。
- 2 回答
- 0 關注
- 581 瀏覽
添加回答
舉報
0/150
提交
取消