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"

Respuestas:


178

Solo duplícalo

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

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

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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.