在Scala 2.11.8上:
private def safeMax[A](xs: List[A])
(implicit ev: Ordering[A]): Option[A] = xs match {
case ys@(_ :: _) => Some(ys.min)
case Nil => None
}
// Exiting paste mode, now interpreting.
<console>:12: error: No implicit Ordering defined for ?A1.
case ys@(_ :: _) => Some(ys.min)
^
由于ys
的类型为List[A]
,据我所知,为什么会发生这种编译时错误?
请注意,我可以通过将ys.min
替换为xs.min
来解决此问题,但我还是很好奇。