Я прочитал ответ на question о scala.math. Integral, но я не понимаю, что происходит, когда Integral[T]
передается как неявный параметр. (Я думаю, что я понимаю концепцию неявных параметров вообще).
Рассмотрим эту функцию
import scala.math._
def foo[T](t: T)(implicit integral: Integral[T]) { println(integral) }
Теперь я вызываю foo
в REPL:
scala> foo(0)
[email protected]
scala> foo(0L)
[email protected]
Как аргумент integral
становится scala.math.Numeric$IntIsIntegral
и scala.math.Numeric$LongIsIntegral
?