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

我希望它将 str 输出为Hi, mike!,但失败了。这该怎么做?

4

3 回答 3

5

Scala 不支持字符串插值。在http://github.com/jrudolph/scala-enhanced-strings有一个编译器插件可以实现它。

如果没有插件,您可以使用连接或格式字符串:

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

或者当然

val str = "Hi, %s!".format(name)
于 2010-07-26T17:35:08.827 回答
5

一个完全骇人听闻的解决方案是使用 Scala 的 XML 插值:

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

text方法返回 XML 构造的字符串内容,因此我们的标签被剥离。

于 2010-07-26T21:56:38.850 回答
4

从 scala >= 2.10 开始,支持字符串插值:

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

scala> s"Interpolating: $str"
res0: String = Interpolating: Foo Bar
于 2014-05-26T18:07:43.533 回答