Scala字符串模板

yur*_*ura 6 templates template-engine scala core

是否有默认(在SDK中)scala支持字符串模板?示例:"$ firstName $ lastName"(命名为未编号的参数)或甚至类似for/if的构造.如果没有这样的默认引擎,那么实现这一目标的最佳scala库是什么.

Kim*_*bel 9

如果你想要一个模板引擎,我建议你看一下scalate.如果你只需要字符串插值,那么"%s %s".format(firstName, lastName)你的朋友.


Dan*_*ral 5

补充Kim的 答案,请注意Java Formatter接受位置参数.例如:

"%2$s %1$s".format(firstName, lastName)
Run Code Online (Sandbox Code Playgroud)

此外,还有增强字符串插件,它允许在字符串上嵌入任意表达式.例如:

@EnhanceStrings // enhance strings in this scope
trait Example1 {
  val x = 5
  val str = "Inner string arithmetics: #{{ x * x + 12 }}"
}
Run Code Online (Sandbox Code Playgroud)

有关更多答案,请参阅此问题,因为这实际上是一个非常接近的重复.


Dav*_*pik 5

在 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
Run Code Online (Sandbox Code Playgroud)