gpt4 book ai didi

scala - 为什么我必须导入 Ordering.Implicits?

转载 作者:行者123 更新时间:2023-12-01 21:56:29 24 4
gpt4 key购买 nike

在下面的代码中,除非导入 Ordering.Implicits,否则会出现编译错误。为什么需要导入?有办法解决吗?我是不是在做一些完全离谱的事情?

Error:(15, 38) value < is not a member of type parameter A
case (ah :: as, bh :: _) if ah < bh => findOverlap(c, as, b)
  private def foo[A : Ordering](c: mutable.Set[A], a: Seq[A], b: Seq[A]): mutable.Set[A] =
(a, b) match {
case (ah :: _, bh :: _) if ah == bh => c + ah
case (ah :: as, bh :: _) if ah < bh => foo(c, as, b)
case (_, _ :: bs) => foo(c, a, bs)
}

最佳答案

<方法来自内部类 OpsOrdering特征。 Ordering 里面有一个隐式转换提供它,但只有一个 Ordering 的隐式实例不足以使其在范围内。您可以显式导入它:

  val ordering = implicitly[Ordering[A]]
import ordering.mkOrderingOps

...或者您可以导入 Ordering.Implicits ,其中包含一些用于处理 Ordering 的实用方法.其中之一是隐式转换 provides an Ops instance whenever you have an Ordering in scope .

关于scala - 为什么我必须导入 Ordering.Implicits?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56751081/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com