Escala | O – Part 2

En Scala O bien , funciona exactamente igual que una Opción . La única diferencia es que con O es factible devolver una string que puede explicar las instrucciones sobre el error que apareció. Cualquiera tiene dos hijos que se denominan Derecha e Izquierda , donde Derecha es similar a la clase Algunos e Izquierda es igual a la clase Ninguno . La izquierda se utiliza para la falla donde, podemos devolver el error ocurrido dentro del niño. La izquierda de cualquiera y la derecha se utiliza para el éxito.
Ejemplo:

 Either[String, Int]

Aquí, la String se utiliza para el hijo izquierdo de Cualquiera como el argumento izquierdo de Cualquiera y el Int se utiliza para el hijo Derecho como el argumento derecho de Cualquiera. Ahora, analicémoslo en detalle con la ayuda de algunos ejemplos.

  • Ejemplo :

    // Scala program of Either
      
    // Creating object and inheriting
    // main method of the trait App
    object GfG extends App
    {
      
        // Defining a method and applying 
        // Either
        def Name(name: String): Either[String, String] =
        {
          
            if (name.isEmpty) 
                // Left child for failure
                Left("There is no name.")
      
            else
                // Right child for success
                Right(name)
        }
          
        // Displays this if name is 
        // not empty
        println(Name("GeeksforGeeks"))
      
        // Displays the String present
        // in the Left child 
        println(Name(""))
    }
    Producción:

    Right(GeeksforGeeks)
    Left(There is no name.)
    

    Aquí, el método isEmpty verifica si el campo de nombre está vacío o lleno, si está vacío, el elemento secundario izquierdo devolverá la string dentro de sí mismo y si este campo no está vacío, el elemento secundario derecho devolverá el nombre indicado.

  • Ejemplo :

    // Scala program of Either with
    // Pattern matching
      
    // Creating object and inheriting
    // main method of the trait App
    object either extends App
    {
      
        // Defining a method and applying 
        // Either
        def Division(q: Int, r: Int): Either[String, Int] =
        {
            if (q == 0
                // Left child for failure 
                Left("Division not possible.")
            else
                // Right child for success
                Right(q / r)
        }
      
        // Assigning values 
        val x = Division(4, 2)
      
        // Applying pattern matching
        x match
        {
            case Left(l) => 
          
            // Displays this if the division
            // is not possible
            println("Left: " + l)
          
            case Right(r) => 
          
            // Displays this if division 
            // is possible
            println("Right: " + r)
        }
    }
    Producción:

    Right: 2
    

    Aquí, la división es posible, lo que implica éxito, por lo que Derecha devuelve 2. Aquí, hemos utilizado la coincidencia de patrones en este ejemplo de Cualquiera.

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 *