Как связать данные в 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