Escapar de un signo de dólar en la interpolación de cadenas

119

¿Cómo puedo escapar de un signo de dólar en la interpolación de cadenas?

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

// --> "error: unclosed string literal"
0__
fuente

Respuestas:

178

Solo duplícalo

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

scala> s"my.package.$name$$"
res0: String = my.package.foo$
4e6
fuente
4
Me encantaría ver un enlace a alguna documentación sobre este. Puede haber otros casos además del exacto aquí, y la respuesta podría ayudar a más personas
Martin Hallén
No puedo encontrar nada sobre esto en la documentación. Sin embargo, hay un PR para agregarlo: github.com/scala/docs.scala-lang/pull/1531
amoebe
1
La documentación está ahora aquí: docs.scala-lang.org/overviews/core/… ¿ No estás seguro de qué otros casos hay?
amebe