La Opción en Scala se refiere a un portador de un solo elemento o ningún elemento para un tipo establecido. Cuando un método devuelve un valor que incluso puede ser nulo, se utiliza la opción, es decir, el método definido devuelve una instancia de una opción, en lugar de devolver un solo objeto o un valor nulo.
Puntos importantes :
- La instancia de una Opción que se devuelve aquí puede ser una instancia de la clase Some o None en Scala, donde Some y None son los elementos secundarios de la clase Option .
- Cuando se obtiene el valor de una clave determinada , se genera alguna clase.
- Cuando no se obtiene el valor de una clave determinada , se genera la clase None .
Ejemplo :
// Scala program for Option // Creating object object option { // Main method def main(args: Array[String]) { // Creating a Map val name = Map("Nidhi" -> "author", "Geeta" -> "coder") // Accessing keys of the map val x = name.get("Nidhi") val y = name.get("Rahul") // Displays Some if the key is // found else None println(x) println(y) } }
Some(author) None
Aquí, se encuentra la clave del valor Nidhi , por lo que se devuelve Some , pero no se encuentra la clave del valor Rahul , por lo que no se devuelve None .
Diferente forma de tomar valores opcionales.
- Uso de coincidencia de patrones:
Ejemplo :
// Scala program for Option
// with Pattern matching
// Creating object
object
pattern
{
// Main method
def
main(args
:
Array[String])
{
// Creating a Map
val
name
=
Map(
"Nidhi"
-
>
"author"
,
"Geeta"
-
>
"coder"
)
//Accessing keys of the map
println(patrn(name.get(
"Nidhi"
)))
println(patrn(name.get(
"Rahul"
)))
}
// Using Option with Pattern
// matching
def
patrn(z
:
Option[String])
=
z
match
{
// for 'Some' class the key for
// the given value is displayed
case
Some(s)
=>
(s)
// for 'None' class the below string
// is displayed
case
None
=>
(
"key not found"
)
}
}
Producción:author key not found
Aquí, hemos utilizado la opción con coincidencia de patrones en Scala.
- Método getOrElse():
este método se utiliza para devolver un valor si está presente o un valor predeterminado cuando no está presente. Aquí, para alguna clase se devuelve un valor y para ninguna clase se devuelve un valor predeterminado.
Ejemplo:// Scala program of using
// getOrElse method
// Creating object
object
get
{
// Main method
def
main(args
:
Array[String])
{
// Using Some class
val
some
:
Option[Int]
=
Some(
15
)
// Using None class
val
none
:
Option[Int]
=
None
// Applying getOrElse method
val
x
=
some.getOrElse(
0
)
val
y
=
none.getOrElse(
17
)
// Displays the key in the
// class Some
println(x)
// Displays default value
println(y)
}
}
Producción:15 17
Aquí, el valor predeterminado asignado a Ninguno es 17, por lo que se devuelve para la clase Ninguno .
- Método isEmpty():
este método se utiliza para verificar si la opción tiene un valor o no.
Ejemplo:// Scala program of using
// isEmpty method
// Creating object
object
check
{
// Main method
def
main(args
:
Array[String])
{
// Using Some class
val
some
:
Option[Int]
=
Some(
20
)
// Using None class
val
none
:
Option[Int]
=
None
// Applying isEmpty method
val
x
=
some.isEmpty
val
y
=
none.isEmpty
// Displays true if there
// is a value else false
println(x)
println(y)
}
}
Producción:false true
Aquí, isEmpty devuelve falso para alguna clase, ya que no está vacía, pero devuelve verdadero para ninguna , ya que está vacía.
Publicación traducida automáticamente
Artículo escrito por nidhi1352singh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA