Шаблон строки Scala - PullRequest
       9

Шаблон строки Scala

6 голосов
/ 04 июня 2011

Есть ли по умолчанию (в SDK) поддержка scala для шаблонов строк? Пример: «$ firstName $ lastName» (именованные ненумерованные параметры) или даже конструкции типа for / if. Если такого движка по умолчанию нет, то какая библиотека Scala лучше всего подходит для этого?

Ответы [ 5 ]

9 голосов
/ 04 июня 2011

Если вам нужен шаблонизатор, я предлагаю вам взглянуть на scalate .Если вам просто нужна интерполяция строк, "%s %s".format(firstName, lastName) ваш друг.

5 голосов
/ 04 июня 2011

Дополняя Ким ответ , обратите внимание, что Java Formatter принимает позиционные параметры. Например:

"%2$s %1$s".format(firstName, lastName)

Также есть плагин Enhanced Strings , который позволяет встраивать произвольные выражения в строки. Например:

@EnhanceStrings // enhance strings in this scope
trait Example1 {
  val x = 5
  val str = "Inner string arithmetics: #{{ x * x + 12 }}"
}

См. Также этот вопрос для получения дополнительных ответов, поскольку это действительно близкий дубликат.

3 голосов
/ 18 августа 2015

В Scala 2.10 и выше вы можете использовать строковую интерполяцию

val name = "James"
println(s"Hello, $name")  // Hello, James

val height = 1.9d
println(f"$name%s is $height%2.2f meters tall")  // James is 1.90 meters tall
1 голос
/ 13 октября 2011

Этот плагин компилятора некоторое время обеспечивал интерполяцию строк:

http://jrudolph.github.com/scala-enhanced-strings/Overview.scala.html

Совсем недавно эта функция, похоже, превращает ее в ствол Scala: https://lampsvn.epfl.ch/trac/scala/browser/scala/trunk/test/files/run/stringInterpolation.scala - что создает некоторые интересные возможности: https://gist.github.com/a69d8ffbfe9f42e65fbf (не уверен, что это было возможно с плагином ; Я сомневаюсь в этом).

0 голосов
/ 04 июня 2011

Используйте чрезвычайно популярные +" / "+ для шаблонов, подобных этому:

firstname+" "+lastName
...