Uso de extractores con coincidencia de patrones en Scala

Scala Extractor se define como un objeto que tiene un método llamado desaplicar como una de sus partes. Los extractores se pueden utilizar en Pattern Matching . El método de no aplicar se ejecutará espontáneamente, mientras se compara el objeto de un extractor en la coincidencia de patrones.

A continuación se muestra el ejemplo de Extractor con coincidencia de patrones.
Ejemplo 1:

// Scala program of extractors 
// with pattern matching 
  
// Creating object 
object GfG 
{ 
  
    // Main method 
    def main(args: Array[String]) 
    { 
  
        // Assigning value to the 
        // object 
        val x = GfG(25) 
  
        // Displays output of the 
        // Apply method 
        println(x) 
  
        // Applying pattern matching 
        x match
        { 
  
            // unapply method is called 
            case GfG(y) => println("The value is: "+y) 
            case _ => println("Can't be evaluated") 
      
        } 
    } 
      
    // Defining apply method 
    def apply(x: Double) = x / 5
  
    // Defining unapply method 
    def unapply(z: Double): Option[Double] =
  
        if (z % 5 == 0) 
        { 
            Some(z/5) 
        } 
      
        else None 
} 
Producción:

5.0
The value is: 1.0

En el ejemplo anterior, el nombre del objeto es GFG y también estamos usando el método de no aplicación y aplicando la clase de caso con la expresión de coincidencia.

Ejemplo #2:

// Scala program of extractors 
// with pattern matching 
  
// Creating object 
object GFG
{ 
  
    // Main method 
    def main(args: Array[String]) 
    { 
  
        val x = GFG(15)
        println(x)
  
        x match
        {
            case GFG(num) => println(x + 
                        " is bigger two times than " + num)
          
            // Unapply is invoked
            case _ => println("not calculated")
    }
}
def apply(x: Int) = x * 2
def unapply(z: Int): Option[Int] = if (z % 2 == 0) 
                                    Some(z/2) else None
} 
Producción:

30
30 is bigger two times than 15

Al comparar un objeto extractor usando la declaración de coincidencia, el método de no aplicación se ejecutará automáticamente.
Nota: una clase de caso ya tiene un extractor, por lo que se puede utilizar espontáneamente con la coincidencia de patrones.

Publicación traducida automáticamente

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