É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"

Réponses:


178

Juste le double

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

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

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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.