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.