Escala | Interpolación de strings

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:

  1. La string debe definirse con un carácter inicial como s / f / raw .
  2. Las variables en la String deben tener ‘$’ como prefijo.
  3. 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}"

Tipos de interpolador de strings

  1. 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 str1 = "Sum of $x and $y is ${x+y}"
      
            // with s interpolator
            val str2 = s"Sum of $x and $y is ${x+y}"
          
            println("str1: "+str1)
            println("str2: "+str2)
        }
    }

    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 str1 = "Sum of $x and $y is ${add(x, y)}"
      
            // with s interpolator
            val str2 = s"Sum of $x and $y is ${add(x, y)}"
          
            println("str1: " + str1)
            println("str2: " + str2)
        }
    }

    Producción:

    str1: Sum of $x and $y is ${add(x, y)}
    str2: Sum of 20 and 10 is 30
  2. 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 str1 = "Value of x is $x%.2f"
      
            // with f interpolator
            val str2 = f"Value of x is $x%.2f"
          
            println("str1: " + str1)
            println("str2: " + str2)
          
        }
    }

    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 str1 = "Value of x is $x%04d"
      
            // with f interpolator
            val str2 = f"Value of x is $x%04d"
          
            println(str1)
            println(str2)
        }
    }

    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 .

  3. 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 str1 = "Hello\nWorld"
      
            // with raw interpolator
            val str2 = raw"Hello\nWorld"
          
            println("str1: " + str1)
            println("str2: " + str2)
        }
    }

    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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *