Questions tagged «implicits»

2
Scala在哪里寻找隐式?
一个隐含的新人Scala的问题似乎是:在哪里呢编译器找implicits?我的意思是隐含的,因为这个问题似乎从来没有完全形成,就好像没有言语。:-)例如,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])Unit scala> foo(0) scala.math.Numeric$IntIsIntegral$@3dbea611 scala> foo(0L) scala.math.Numeric$LongIsIntegral$@48c610af 决定学习第一个问题的答案的另一个问题是,在某些明显的模棱两可的情况下,编译器如何选择要使用的隐式变量(无论如何还是要编译)? 例如,scala.Predef定义了两次转换String:从到WrappedString,再到到StringOps。但是,这两个类共享许多方法,所以为什么Scala在调用时不抱怨歧义map? 注意:这个问题是由另一个问题启发而来的,希望以更笼统的方式说明问题。该示例是从那里复制的,因为答案中已提及该示例。


3
Scala标识符“隐式”是什么?
我已经看到了implicitly在Scala示例中使用的命名函数。它是什么,如何使用? 这里的例子: scala> sealed trait Foo[T] { def apply(list : List[T]) : Unit }; object Foo { | implicit def stringImpl = new Foo[String] { | def apply(list : List[String]) = println("String") | } | implicit def intImpl = new Foo[Int] { | def apply(list : List[Int]) = println("Int") | …
169 scala  implicits 

3
如何在Scala中链接隐式函数?
pimp-my-library模式允许我通过在类中隐式转换为实现该方法的隐式转换,从而在类中似乎添加了一种方法。 斯卡拉不允许两个这样的隐式转换正在发生,但是,我不能得到A到C使用隐含A于B和另一个隐含的B对C。有没有办法解决这个限制?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.