我一直在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