Ist das ein Fehler in Scala 2.10 String Interpolation in einem mehrzeiligen String mit Backslash?

8

Mit Scala 2.10.0-RC1 habe ich versucht, String-Interpolation in einem Windows-Dateipfad zu verwenden, z. so:

%Vor%

Und habe eine Ausnahme

%Vor%

Ohne das mehrzeilige String-Literal ( """ ) funktioniert es gut val Pfad = s "" "c: \ foo \ bar \ $ Dateiname.csv" ""     val Pfad = s "c: \ foo \ bar \ $ {Dateiname} .csv" // & gt; Pfad: Zeichenfolge = c: \ foo \ bar \ myFile.csv

Weitere Tests, um das Problem zu reproduzieren:

%Vor%

Liegt diese Ausnahme an einem Fehler? Oder darf ich vor dem Zeichen $ bei der String-Interpolation einfach Backslash verwenden?

Hier ist mehr von dem Stacktrace:

%Vor%

Aktualisierung:

Jetzt für Scala 2.10.1-RC1 als behoben markiert

Ссылка

Übrigens, selbst nach der Behebung, verwenden wir raw :

%Vor%

z.B.

%Vor%     
Eran Medan 08.11.2012, 19:34
quelle

1 Antwort

8

Die Zeichenfolgeninterpolationsschreibweise übernimmt die Steuerung, ob eine Zeichenfolge eine unbearbeitete Zeichenfolge ist oder nicht. Das Triple-Quoting bringt nur die Möglichkeit, einfache Anführungszeichen zu zitieren. Wenn Sie keine Interpolation wünschen, verwenden Sie stattdessen raw"Hi $name" . (Außer raw ist auch fehlerhaft in 2.10.0; ein Update ist in 2.10.1 AFAIK.)

Das heißt, das ist kein sehr freundlicher Weg, um mit der Situation einer missformatierten Saite umzugehen. Ich würde es als Fehler klassifizieren, nur weil es eine Ausnahme außerhalb der Grenzen zurückgibt, die nicht besagt, dass ein Escape-Code nicht abgeschlossen werden kann.

Hinweis: Diese brechen auch:

%Vor%     
Rex Kerr 08.11.2012, 20:43
quelle