recojo la sensación es que cadena de interpolación es innecesario, porque no es mucho más concisa que la concatenación:
val str2 = "Hello, ${str1}!"
val str2 = "Hello, "+str1+"!"
el argumento de que la El operador "+" en cadenas debe formatearse sin espacio, Martin Odersky says,
Con la nueva convención, la necesidad de sustitución de cadenas (a menudo presentada en las listas de Scala) casi desaparece. Comparar:
"test results: ${result1}, ${result2}"
con la primera versión anterior. Ha guardado un carácter por sustitución , apenas vale la pena una nueva convención de sintaxis. En otras palabras, la sintaxis sustitución de cadenas de Scala está escrito
"+...+"
en lugar de
${...}
o alguna otra propuesta similar. Por otro lado, si insistes en espacios alrededor del +, la historia se vuelve mucho menos convincente.
Por cierto, ver la publicación del blog, "String Interpolation in Scala" donde se emula mediante la reflexión.
Esta pregunta es similar a http://stackoverflow.com/ questions/2183503/substitute-values-in-a-string-with-placeholders-in-scala/2189134 con muchas respuestas diferentes. –
@Mitch: Realmente no es la misma pregunta. El otro asker quería saber cómo hacerlo; Quería saber la razón detrás de la decisión de los diseñadores de Scala, que está bien respondida a continuación. –
Ahora está (Interpolación de cadenas Scala 2.10): 's" Hola, $ str1 "' (http://docs.scala-lang.org/overviews/core/string-interpolation.html) –