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