2010-10-18 10 views
8

Dla następującego kodu:Dlaczego nielegalne rozpoczęcie deklaracji w Scali?

package FileOperations 
import java.net.URL 

object FileOperations { 
    def processWindowsPath(p: String): String { 
     "file:///" + p.replaceAll("\\", "/") 
    } 
} 

kompilator daje błąd:

> scalac FileOperations.scala 
FileOperations.scala:6: error: illegal start of declaration 
     "file:///" + p.replaceAll("\\", "/") 

Dlaczego? Jak naprawić?

Odpowiedz

17

Brakuje wartości = z deklaracji metody processWindowPath.

package FileOperations 
import java.net.URL 

object FileOperations { 
    def processWindowsPath(p: String): String = { 
     "file:///" + p.replaceAll("\\", "/") 
    } 
} 
+0

Wszystko scala ofert poradnik brakuje tego symbolu http://www.scala-lang.org/docu/files/ScalaTutorial.pdf – Basilevs

+1

Tak, jest dużo kodu tam, który nie zwraca wartości. Jeśli metoda zwraca wartość, potrzebujesz znaku =. Strona 8 ma pierwszy przykład w połączonym dokumencie. –

+0

Czy te funkcje zwracają wartość? Jeśli nie, to nie powinni używać '='. –

7
object FileOperations { 
    def processWindowsPath(p: String): String = { 
    "file:///" + p.replaceAll("\\", "/") 
    } 
} 

Jest brakuje =. Metody Scala są zdefiniowane w następujący sposób:

def methodName(arg1: Type1, arg2: Type2): ReturnType = // Method body 
Powiązane problemy