2011-04-21 17 views
5

Şimdiye kadar Scala'da Traits'i çok fazla kullanmamıştım ve bunu değiştirmek istiyorum. Ben sbt ile derleme yaparkenBu içe aktarmalardan sonra neden noktalı virgüllere ihtiyacım var?

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 
     } 
    } 
} 

sorundur, ben alınmasına devam: Bu kodu vardır ben ithalatı sonra ; eklerseniz

ImageFileAcceptor.scala:2: ';' expected but 'import' found.

, kod derler.

import java.io.File 

trait FileAcceptor extends Acceptable { 
    override def accept(f:File):Boolean = f.isFile 
} 

Ve burada Acceptable var: İşte FileAcceptor var

import java.io.File 

trait Acceptable { 
    def accept(f:File):Boolean 
} 

Ben ithalat sonra noktalı virgül neden ihtiyacın olduğunu anlamıyorum.

DÜZENLEME: belki sbt çıktısı faydalıdır:

[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 
+0

"Gerçekten bir görüntü olup olmadığını görmek için ek iş" sonra "true" eklediğimde, Scala 2.9.0 RC1 altında fsc ile iyi derler. –

+0

Bilgisayarımda orada doğru var. Sadece snippet'i kısaltmak istedim. – Geo

+10

Bu, bir satır sonu sorunu olabilir - dosyanızı yanlışlıkla eski Macintosh satır sonlarıyla (\ r) kaydetmiş olabilir misiniz? Aslında tam olarak gördüğünüz hatayı üretir. – Moritz

cevap

4

scala derleyici biten Macintosh çizgi karşılaşır - --Forum scala derleyici hatalı bir noktalı virgül ihtiyacını ilan edecek \r olmak Moritz'in dediği gibi. Scala Reference Manual bölüm 1.2, doğru yeni satır karakterlerini açıklar. Referansta hangi karakter değişmezlerinin yeni satırlar olarak kabul edildiğini bulamadım. Deneyimlerden, hem Windows (\r\n) hem de Unix (\n) kabul edilebilir. Muhtemelen scala bu konuda Java ile kesinlikle uyumludur.

İlgili konular