我一直在 scala 中从事一个项目,但我收到了一些我不太理解的错误消息。我正在使用的类相对简单。例如:
abstract class Shape
case class Point(x: Int, y: Int) extends Shape
case class Polygon(points: Point*) extends Shape
现在假设我创建了一个多边形:
val poly = new Polygon(new Point(2,5), new Point(7,0), new Point(3,1))
然后,如果我试图确定可能包含多边形的最小矩形的位置和大小,我会得到各种我不太理解的错误。
以下是不同尝试的片段以及它们产生的相应错误消息。
val upperLeftX = poly.points.reduceLeft(Math.min(_.x, _.x))
给出错误:
“缺少扩展函数的参数类型 ((x$1) => x$1.x) ”
val upperLeftX =
poly.points.reduceLeft((a: Point, b: Point) => (Math.min(a.x, b.x)))
给出此错误:
“类型不匹配;
发现:(Point, Point) => Int
required: (Any, Point) => Any ”
我对这两个错误消息都很困惑。如果有人能更清楚地解释我做错了什么,我将不胜感激。是的,我看到第二个错误说我需要输入“Any”,但我不完全了解如何实现我需要的更改。显然,简单地将“a:Point”更改为“a:Any”不是一个可行的解决方案,那么我错过了什么?