我一直在scala项目中工作,但我收到了一些我不太明白的错误消息。我正在使用的课程相对简单。 例如:需要帮助搞清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”,但我不明白如何实施可以根据需要进行更改的更改。显然,简单地将“a:Point”改为“a:Any”不是一个可行的解决方案,所以我错过了什么?
好的......我认为我其实已经明白这一点。感谢您的解释! – klactose 2010-05-20 07:24:55