ho capito la sensazione è che String interpolazione non è necessaria, perché non è molto più conciso di concatenazione:
val str2 = "Hello, ${str1}!"
val str2 = "Hello, "+str1+"!"
sostenendo che la L'operatore "+" su Stringhe deve essere formattato senza spazio, Martin Odersky says,
Con la nuova convenzione, la necessità di sostituire le stringhe (spesso proposta nelle liste di Scala) scompare quasi del tutto. Confronta:
"test results: ${result1}, ${result2}"
con la prima versione di cui sopra. Hai salvato un carattere per la sostituzione di , a malapena vale una nuova convenzione di sintassi. In altre parole, la sintassi sostituzione di stringhe di Scala è scritto
"+...+"
invece di
${...}
o qualche altra proposta simile. D'altra parte, se insisti sugli spazi attorno al +, la storia diventa molto meno convincente.
Per inciso, vedere il post del blog "String Interpolation in Scala" dove viene emulato utilizzando il riflesso.
fonte
2010-03-20 08:30:21
Questa domanda è simile a http://stackoverflow.com/ domande/2183503/sostituti-valori-in-a-stringa-con-segnaposti-in-scala/2189134 con risposte molto diverse. –
@Mitch: Non è la stessa domanda. L'altro richiedente voleva sapere come farlo; Volevo conoscere la logica alla base della decisione dei progettisti della Scala, a cui è stata data una buona risposta in seguito. –
C'è ora (Scala 2.10 Interpolazione a Corde): 's" Ciao, $ str1 "' (http://docs.scala-lang.org/overviews/core/string-interpolation.html) –