Escape ein Dollarzeichen in String-Interpolation


119

Wie entkomme ich einem Dollarzeichen bei der Zeichenfolgeninterpolation?

def getCompanion(name: String) = Class.forName(s"my.package.$name\$")

// --> "error: unclosed string literal"

Antworten:


178

Verdoppeln Sie es einfach

scala> val name = "foo"
name: String = foo

scala> s"my.package.$name$$"
res0: String = my.package.foo$

4
Würde gerne einen Link zu einer Dokumentation zu diesem Thema sehen. Es könnte andere Fälle als den genauen hier geben, und die Antwort könnte dann mehr Menschen helfen
Martin Hallén

Ich kann dazu nichts in der Dokumentation finden. Es gibt eine PR, um es hinzuzufügen: github.com/scala/docs.scala-lang/pull/1531
amoebe

1
Die Dokumentation ist jetzt hier: docs.scala-lang.org/overviews/core/… Noch sicher, welche anderen Fälle es gibt?
Amöbe
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.