2013-05-27 181 views
0

我試圖在斯卡拉運行從編程一個例子,但是編譯器給我的錯誤:私人領域不編譯

Description Resource Path Location Type illegal start of statement (no modifiers allowed here) ChecksumAcc.sc /HelloWorld/src line 3 Scala Problem

基本上抱怨private

import scala.collection.mutable.Map 

object ChecksumAcc { 
    private val cache = Map[String, Int]() 

} 

我使用Eclipse for Scala工作表。更新後相同。我相信它使用了2.9.3 scala編譯器。爲什麼不編譯?

回答

2

不知道你的實際問題是什麼,但斯卡拉工作表有一些特殊的規則(如非常明確的錯誤消息所示...)。有一件事,如果你使用工作表,你能做的,就是把所有的代碼Worksheet對象裏面是這樣的:

object Worksheet { 
    import scala.collection.mutable.Map 

    object ChecksumAcc { 
    private val cache = Map[String, Int]() 
    } 
} 

或者,使用Eclipse的「新斯卡拉對象...」並使用而不是工作表。

0

爲了避免你看到錯誤信息,當要在Eclipse中的Scala板材 工作在同一個對象包住類定義和伴侶類(Singleton對象)

object worksheet { 
class CheckSumAccumulator { 
... 
} 
    object CheckSumAccumulator { 
    ... 
    } 
    CheckSumAccumulator.calculate("foobar") 

}