字符串插值在函数定义中不起作用

时间:2014-08-29 19:59:02

标签: scala string-interpolation

当我尝试这种字符串插值语法时:

(1 to 100).map( vvv => s"{ \"key name\": $vvv, \"value name\": 2 }" )

scala编译器给了我这个错误:

Error:(23, 58) value key is not a member of String
(1 to 100).map( vvv => s"{ \"key name\": ${vvv}, \"value name\": 2 }" )

这里出了什么问题?                                                          ^

2 个答案:

答案 0 :(得分:4)

单行字符串插值中的转码引号无效:

scala> s"\""
<console>:1: error: unclosed string literal
       s"\""
           ^

请改用多行字符串文字:

(1 to 100).map( vvv => s"""{ "key name": $vvv, "value name": 2 }""" )

答案 1 :(得分:0)

它可以简单地完成,例如,

  

(1到10).map(vvv =&gt;&#34; {\&#34;键名\&#34;:&#34; + vvv +&#34;,\&#34;价值名称&#34;:2}&#34;   )

OR

正如sschaef指出的那样,

  

(1到100).map(vvv =&gt; s&#34;&#34;&#34; {&#34;键名&#34;:$ vvv,&#34;值名称&#34; :2}&#34;&#34;&#34;