Unikaj znaku dolara w interpolacji ciągów

119

Jak uniknąć znaku dolara w interpolacji ciągów?

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

// --> "error: unclosed string literal"
0__
źródło

Odpowiedzi:

178

Po prostu podwoić to

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

scala> s"my.package.$name$$"
res0: String = my.package.foo$
4e6
źródło
4
Chciałbym zobaczyć link do dokumentacji na ten temat. Mogą istnieć inne przypadki niż ten tutaj, a odpowiedź może wtedy pomóc większej liczbie osób
Martin Hallén
Nie mogę znaleźć nic na ten temat w dokumentacji. Jest jednak PR, aby to dodać: github.com/scala/docs.scala-lang/pull/1531
amoebe
1
Dokumentacja jest teraz tutaj: docs.scala-lang.org/overviews/core/… Nie jesteś pewien, jakie są inne przypadki?
amoebe