Échapper à un signe dollar dans l'interpolation de chaîne

119

Comment échapper à un signe dollar dans l'interpolation de chaîne?

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

// --> "error: unclosed string literal"
0__
la source

Réponses:

178

Juste le double

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

scala> s"my.package.$name$$"
res0: String = my.package.foo$
4e6
la source
4
J'adorerais voir un lien vers une documentation sur celui-ci. Il pourrait y avoir d'autres cas que celui exact ici, et la réponse pourrait alors aider plus de gens
Martin Hallén
Je ne trouve rien à ce sujet dans la documentation. Il y a un PR pour l'ajouter cependant: github.com/scala/docs.scala-lang/pull/1531
amoebe
1
La documentation est maintenant ici: docs.scala-lang.org/overviews/core /... Vous ne savez pas quels sont les autres cas?
amoebe