Scala无法编译字符串文字

WoL*_*NeR 0 scala

我想知道为什么Scala不编译以下代码:

val bar = "p1"
val baz = "p2"
val str = s"foo=\"-param1$bar -param2$baz\""
Run Code Online (Sandbox Code Playgroud)

我想变量"str"是这样的

foo="-param1p1 -param2p2"
Run Code Online (Sandbox Code Playgroud)

并且编译器错误是

value - is not a member of String
val string = s"foo=\"-param1$bar -param2$baz\""
                     ^
Run Code Online (Sandbox Code Playgroud)

Ran*_*ulz 5

它是插值字符串文字的限制.您可以使用该s""" blah """表单来获取封闭的双引号.

以机智:

scala> val bar = "p1"
bar: String = p1

scala> val baz = "p2"
baz: String = p2

scala> val str = s"""foo="-param1$bar -param2$baz\""""
str: String = foo="-param1p1 -param2p2"
Run Code Online (Sandbox Code Playgroud)