Как связать данные в heredoc от scala?

val name = "mike"
val str = """Hi, {name}!"""
println(str)

Я хочу, чтобы вывести на стр Hi, mike!, но не удалось. Как это сделать?

3 ответа

Решение

Scala не поддерживает интерполяцию строк. Существует плагин компилятора, который реализует его по адресу http://github.com/jrudolph/scala-enhanced-strings.

Без плагина вы можете использовать конкатенацию или форматирование строк:

val str = name formatted "Hi, %s!"

или конечно

val str = "Hi, %s!".format(name)

Полное хакерское решение - использовать XML-интерполяцию Scala:

val name = "Mike"
val str = <a>Hi, {name}!</a> text

text Метод возвращает строковое содержимое конструкции XML, поэтому наши теги удаляются.

Начиная с scala >= 2.10 поддерживаются интерполяции строк:

val str = "Foo Bar"
str: String = Foo Bar

scala> s"Interpolating: $str"
res0: String = Interpolating: Foo Bar
Другие вопросы по тегам