Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
scala中隐式示例的混淆 implicit def list2ordered[A](x:List[A])(implicit elem2ordered:A=>Ordered[A]):Ordered[List[A]]= 新订购的[列表[A]]{ //替换为更有用的实现 def比较(即:列表[A]):Int=1 } println(列表(1,2,3)_Scala_Implicit Conversion_Implicit - Fatal编程技术网

scala中隐式示例的混淆 implicit def list2ordered[A](x:List[A])(implicit elem2ordered:A=>Ordered[A]):Ordered[List[A]]= 新订购的[列表[A]]{ //替换为更有用的实现 def比较(即:列表[A]):Int=1 } println(列表(1,2,3)

scala中隐式示例的混淆 implicit def list2ordered[A](x:List[A])(implicit elem2ordered:A=>Ordered[A]):Ordered[List[A]]= 新订购的[列表[A]]{ //替换为更有用的实现 def比较(即:列表[A]):Int=1 } println(列表(1,2,3),scala,implicit-conversion,implicit,Scala,Implicit Conversion,Implicit,意味着它是一个,也就是说,如果你有一个隐式转换List[a]=>Ordered[List[a]],那么你有一个隐式转换a=>Ordered[a] 而Predef.intWrapper正是这样一种隐式转换,因为它是Int=>RichInt和RichInt扩展了Ordered[Int](RichInt你能扩展一下你不懂的东西吗?是隐式参数吗? implicit def list2ordered[A](x: List[A])(implicit elem2ordered: A => Ordered

意味着它是一个,也就是说,如果你有一个隐式转换
List[a]=>Ordered[List[a]]
,那么你有一个隐式转换
a=>Ordered[a]


Predef.intWrapper
正是这样一种隐式转换,因为它是
Int=>RichInt
RichInt
扩展了
Ordered[Int]
RichInt你能扩展一下你不懂的东西吗?是隐式参数吗?
implicit def list2ordered[A](x: List[A])(implicit elem2ordered: A => Ordered[A]): Ordered[List[A]] =
  new Ordered[List[A]] {
    //replace with a more useful implementation
    def compare(that: List[A]): Int = 1
}

println(List(1,2,3) <= List(4,5))
List(1,2,3) <= List(4,5)
list2ordered(List(1, 2, 3))(Predef.intWrapper) <= List(4, 5)
implicit def list2ordered[A](x: List[A])(implicit elem2ordered: A => Ordered[A]): Ordered[List[A]]
import scala.reflect.runtime.universe._
println(reify{List(1,2,3) <= List(4,5)}.tree)
//App.this.list2ordered(List.apply(1, 2, 3))(((x) => Predef.intWrapper(x))).$less$eq(List.apply(4, 5))