Escala | StringContext

StringContext es una clase que se utiliza en la interpolación de strings , lo que permite a los usuarios finales insertar las referencias de variables sin ningún intermediario en los literales de string procesados. Esta clase proporciona métodos raw, s y f por defecto como interpoladores. Los supertipos lineales aquí son Serializable , java.io.Serializable , Product , Equals , AnyRef y Any .

  • Un ejemplo del uso del método s disponible como interpolador.
    Ejemplo :

    Scala

    // Scala program of the 
    // StringContext 
      
    // Creating object
    object Main 
      
        // Main method 
        def main(args: Array[String]) 
        
              
            // Assigning values
            val name = "GeeksforGeeks"
            val articles = 32
      
            // Applying StringContext with
            // s-method
            val result = StringContext("I have written "
                        " articles on ", ".").s(articles, name)
      
            // Displays output
            println(result)
      
        }
    }
    Producción :

    I have written 32 articles on GeeksforGeeks.
    

    Aquí, el método StringContext.s se utiliza para extraer las partes constantes, traduce las secuencias de escape contenidas y las agrega con los valores de los argumentos de expresión indicados.
    La salida aquí se devuelve como se indica a continuación:

    "I have written " + (articles) + " articles on " + (name) + "."

    Donde, las variables artículos y nombre son reemplazadas por sus valores.

  • Creando nuestro propio interpolador: para proporcionar nuestro propio interpolador de strings, necesitamos producir una clase implícita que adjunte un método a la clase StringContext.
    Ejemplo :

    Scala

    // Scala program of StringContext 
    // for creating our own string
    // interpolator
      
    // Creating object
    object Main 
      
    // Main method 
    def main(args: Array[String]) 
        // Using implicit class with 
        // StringContext
        implicit class Reverse (val x : StringContext) 
        {
          
            // Defining a method
            def revrs (args : Any*) : String =
            {
          
                // Applying s-method
                val result = x.s(args : _*)
          
                // Applying reverse method
                result.reverse
            }
        }
      
        // Assigning values
        val value = "GeeksforGeeks"
      
        // Displays reverse of the
        // stated string
        println (revrs"$value")
    }
    Producción :

    skeeGrofskeeG
    

    Aquí, el método definido revrs pasa cada uno de sus argumentos al método s y luego imprime el reverso de la string indicada.
    Nota: reverse es una función utilizada aquí para invertir la string dada.

Publicación traducida automáticamente

Artículo escrito por nidhi1352singh 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 *