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 关注
- 547 浏览
添加回答
举报
0/150
提交
取消