Sfuggi al simbolo del dollaro nell'interpolazione di stringhe


119

Come faccio a sfuggire al segno del dollaro nell'interpolazione di stringhe?

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

// --> "error: unclosed string literal"

Risposte:


178

Basta raddoppiarlo

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

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

4
Mi piacerebbe vedere un collegamento ad alcuni documenti su questo. Potrebbero esserci altri casi oltre a quello esatto qui, e la risposta potrebbe quindi aiutare più persone
Martin Hallén

Non riesco a trovare nulla su questo nella documentazione. C'è un PR per aggiungerlo però: github.com/scala/docs.scala-lang/pull/1531
amoebe

1
La documentazione è ora qui: docs.scala-lang.org/overviews/core/… Non sei sicuro di quali altri casi ci siano?
amebe
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.