Escala | Opción

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)
    }
}
Producción:

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *