Избегайте знака доллара при интерполяции строк

120

Как избежать знака доллара при интерполяции строк?

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

// --> "error: unclosed string literal"
0__
источник

Ответы:

178

Просто удвойте это

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

scala> s"my.package.$name$$"
res0: String = my.package.foo$
4e6
источник
4
Хотелось бы увидеть ссылку на документацию по этому поводу. Могут быть и другие случаи, кроме указанного здесь, и ответ мог бы помочь большему количеству людей
Мартин Халлен
Я ничего не могу найти по этому поводу в документации. Хотя есть PR, чтобы добавить это: github.com/scala/docs.scala-lang/pull/1531
amoebe
1
Документация теперь здесь: docs.scala-lang.org/overviews/core/… Не знаете, какие еще есть случаи?
амеб