<;,它是如何做到的:&书信电报;工作 scala>隐式[Int隐式[Foo

<;,它是如何做到的:&书信电报;工作 scala>隐式[Int隐式[Foo,scala,Scala,它在Predef对象中 scala> implicitly[Int <:< AnyVal] res0: <:<[Int,AnyVal] = <function1> scala> class Foo defined class Foo scala> class Bar extends Foo defined class Bar scala> implicitly[Foo <:< Bar] <console>:

它在Predef对象中

scala> implicitly[Int <:< AnyVal]
res0: <:<[Int,AnyVal] = <function1>

scala> class Foo
defined class Foo

scala> class Bar extends Foo
defined class Bar

scala> implicitly[Foo <:< Bar]
<console>:8: error: could not find implicit value for parameter e: <:<[Foo,Bar]
       implicitly[Foo <:< Bar]
                 ^

scala> implicitly[Bar <:< Foo]
res2: <:<[Bar,Foo] = <function1>
scala>隐式[Int您可以在中找到它。隐式方法
符合[A]
提供了以下证据:

scala> implicitly[Int <:< AnyVal]
res1: <:<[Int,AnyVal] = <function1>

scala> :type res1
Predef$<:<[Int,AnyVal]
可能重复你所做的
implicit def conforms[A]: A <:< A = new (A <:< A) { def apply(x: A) = x }
abstract class subclassOf[-From, +To] extends (From => To)
implicit def subclassOfCheck[A]: A subclassOf A = new (A subclassOf A) { def apply(x: A) = x }

implicitly[Int subclassOf AnyVal]

class Foo
class Bar extends Foo

implicitly[Bar subclassOf Foo]