5
到目前爲止,我從來沒有真正在Scala中使用過Traits,我想改變它。我有這樣的代碼:爲什麼在這些導入後需要分號?
import tools.nsc.io.Path
import java.io.File
trait ImageFileAcceptor extends FileAcceptor {
override def accept(f:File) = {
super.accept(f) match {
case true => {
// additional work to see if it's really an image
}
case _ => false
}
}
}
的問題是,當我sbt
編譯,我不斷收到:
ImageFileAcceptor.scala:2: ';' expected but 'import' found.
如果我進口後加;
,代碼編譯。下面是FileAcceptor
:
import java.io.File
trait FileAcceptor extends Acceptable {
override def accept(f:File):Boolean = f.isFile
}
而這裏的Acceptable
:
import java.io.File
trait Acceptable {
def accept(f:File):Boolean
}
我不明白爲什麼我需要進口後分號。
編輯:也許SBT的輸出是有幫助的:
[info] Building project tt 1.0 against Scala 2.8.1
[info] using sbt.DefaultProject with sbt 0.7.5 and Scala 2.7.7
當我在「//額外的工作,看看它是否真的是一個圖像」之後添加「true」時,它在Scala 2.9.0 RC1下使用fsc進行編譯。 – 2011-04-21 20:59:04
在我的電腦上,我真的在那裏。我只想縮短片段。 – Geo 2011-04-21 21:17:12
這可能是一個行結束問題 - 您是否可能意外地將您的文件保存爲舊的Macintosh行結尾(\ r)?這實際上產生了你所看到的錯誤。 – Moritz 2011-04-21 22:22:58