jueves, 10 de enero de 2013

String Interpolation en Scala 2.10


Como vimos en un post anterior Scala libero la versión 2.10 con importantes novedades, entre ellas String Interpolation o Interpolación de cadenas. Lo que permite esta técnica es llamar  variables directamente desde el string, sin tener la necesidad de concatenar strings. Veamos un ejemplo:

val name = "Pepe"
println(s"Hola $name")  // Hola Pepe

Podemos ver que en el ejemplo se utilizo "s" este prefijo nos permite el uso de variables de manera directa dentro de la propia cadena. s nos permite utilizar cualquier variable que este en el contexto y también expresiones:

println(s"1 + 1 = ${1 + 1}")

"f" permite formatear una cadena muy similar al printf de otros lenguajes como C++, veamos un ejemplo:

val height = 1.9d
val name = "Pepe"
println(f"$name%s is $height%2.2f meters")  // Pepe is 1.90 meters

Ojo f es type-safe; lo que significa que si utilizamos una manera de formatear números y la variable es string; va a lanzar una excepción.

raw se diferencia de s dado que escapa caracteres especiales. Veamos un ejemplo:

scala> s"a\nb"
res0: String =
a
b

Pero con raw sería:

scala> raw"a\nb"
res1: String = a\nb

La interpolación de cadenas no funciona con sentencias “pattern matching”. Esta funcionalidad está planificada para su inclusión en la versión 2.11 de Scala.

Un gran avance, Scala sigue creciendo!!

Dejo link:
http://docs.scala-lang.org/es/overviews/core/string-interpolation.html