2010-10-18 11 views
8

Für den folgenden Code:Warum illegaler Beginn der Deklaration in Scala?

package FileOperations 
import java.net.URL 

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

Compiler gibt einen Fehler:

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

Warum? Wie repariert man?

Antwort

17

Sie fehlen ein = aus der ProcessWindowPath-Methodendeklaration.

package FileOperations 
import java.net.URL 

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

Alle scala Tutorial Inserate dieses Symbols fehlen http://www.scala-lang.org/docu/files/ScalaTutorial.pdf – Basilevs

+1

Yup, es gibt eine Menge von Code dort gibt das keinen Wert zurück. Wenn die Methode einen Wert zurückgibt, benötigen Sie das Zeichen =. Seite 8 enthält das erste Beispiel im verknüpften Dokument. –

+0

Gibt diese Funktion einen Rückgabewert aus? Wenn nicht, sollten sie '=' nicht verwenden. –

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

Es gibt eine fehlende =. Methoden in der Scala auf diese Weise definiert sind:

def methodName(arg1: Type1, arg2: Type2): ReturnType = // Method body 
Verwandte Themen