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
:
z.B.
%Vor% 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%Tags und Links scala scala-2.10 string-interpolation