La interpolación de strings se refiere a la sustitución de variables o expresiones definidas en una string dada con valores respetados. La interpolación de strings proporciona una forma fácil de procesar literales de string. Para aplicar esta característica de Scala, debemos seguir algunas reglas:
- La string debe definirse con un carácter inicial como s / f / raw .
- Las variables en la String deben tener ‘$’ como prefijo.
- Las expresiones deben encerrarse entre llaves ({, }) y se agrega ‘$’ como prefijo.
Sintaxis:
// x and y are defined val str = s"Sum of $x and $y is ${x+y}"
- s Interpolador: Dentro del String podemos acceder a variables, campos de objetos, llamadas a funciones, etc.
Ejemplo 1: variables y expresiones:
// Scala program
// for s interpolator
// Creating object
object
GFG
{
// Main method
def
main(args
:
Array[String])
{
val
x
=
20
val
y
=
10
// without s interpolator
val
str
1
=
"Sum of $x and $y is ${x+y}"
// with s interpolator
val
str
2
=
s
"Sum of $x and $y is ${x+y}"
println(
"str1: "
+str
1
)
println(
"str2: "
+str
2
)
}
}
Producción:
str1: Sum of $x and $y is ${x+y} str2: Sum of 20 and 10 is 30
Ejemplo 2: llamada de función
// Scala program
// for s interpolator
// Creating object
object
GFG
{
// adding two numbers
def
add(a
:
Int, b
:
Int)
:
Int
=
{
a+b
}
// Main method
def
main(args
:
Array[String])
{
val
x
=
20
val
y
=
10
// without s interpolator
val
str
1
=
"Sum of $x and $y is ${add(x, y)}"
// with s interpolator
val
str
2
=
s
"Sum of $x and $y is ${add(x, y)}"
println(
"str1: "
+ str
1
)
println(
"str2: "
+ str
2
)
}
}
Producción:
str1: Sum of $x and $y is ${add(x, y)} str2: Sum of 20 and 10 is 30
- f Interpolador: esta interpolación ayuda a formatear números fácilmente.
Para comprender cómo funcionan los especificadores de formato, consulte Especificadores de formato .
Ejemplo 1: imprimiendo hasta 2 decimales:
// Scala program
// for f interpolator
// Creating object
object
GFG
{
// Main method
def
main(args
:
Array[String])
{
val
x
=
20.6
// without f interpolator
val
str
1
=
"Value of x is $x%.2f"
// with f interpolator
val
str
2
=
f
"Value of x is $x%.2f"
println(
"str1: "
+ str
1
)
println(
"str2: "
+ str
2
)
}
}
Producción:
str1: Value of x is $x%.2f str2: Value of x is 20.60
Ejemplo 2: configuración de ancho en números enteros:
// Scala program
// for f interpolator
// Creating object
object
GFG
{
// Main method
def
main(args
:
Array[String])
{
val
x
=
11
// without f interpolator
val
str
1
=
"Value of x is $x%04d"
// with f interpolator
val
str
2
=
f
"Value of x is $x%04d"
println(str
1
)
println(str
2
)
}
}
Producción:
Value of x is $x%04d Value of x is 0011
Si intentamos pasar un valor Double mientras se realiza el formateo usando el especificador %d , el compilador genera un error. En el caso del especificador %f , es aceptable pasar Int .
- Interpolador sin procesar: el literal de string debe comenzar con ‘sin procesar’. Este interpolador trata las secuencias de escape como cualquier otro carácter de una string.
Ejemplo: imprimiendo secuencia de escape:// Scala program
// for raw interpolator
// Creating object
object
GFG
{
// Main method
def
main(args
:
Array[String])
{
// without raw interpolator
val
str
1
=
"Hello\nWorld"
// with raw interpolator
val
str
2
=
raw
"Hello\nWorld"
println(
"str1: "
+ str
1
)
println(
"str2: "
+ str
2
)
}
}
Producción:
str1: Hello World str2: Hello\nWorld
Publicación traducida automáticamente
Artículo escrito por MohammadKhalid y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA