До сих пор я никогда особо не использовал Черты в Scala, и я хочу это изменить. У меня есть этот код:
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