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"
0__
quelle

Antworten:

178

Verdoppeln Sie es einfach

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

scala> s"my.package.$name$$"
res0: String = my.package.foo$
4e6
quelle
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