Escala | Funciones anidadas

Una definición de función dentro de otra función se conoce como función anidada . No es compatible con C++ , Java , etc. En otros lenguajes, podemos llamar a una función dentro de una función, pero no es una función anidada. En Scala, podemos definir funciones dentro de una función y las funciones definidas dentro de otras funciones se denominan funciones anidadas o locales
Sintaxis: 
 

def NombreFunción1( parámetro1, parámetro2, ..) = { 
def NombreFunción2() = { 
// código 

}

 
Función anidada única 
Aquí hay un ejemplo de función anidada única que toma dos números como parámetros y devuelve el Máximo y el Mínimo de ellos. 
Ejemplo 
 

Scala

// Scala program of Single Nested Function
object MaxAndMin
{
    // Main method
    def main(args: Array[String])
    {
        println("Min and Max from 5, 7")
                maxAndMin(5, 7);
    }
     
    // Function
    def maxAndMin(a: Int, b: Int) = {
     
       // Nested Function
       def maxValue() = {
          if(a > b)
          {
              println("Max is: " + a)
          }
          else
          {
              println("Max is: " + b)
          }
       }
     
       // Nested Function
       def minValue() = {
          if (a < b)
          {
              println("Min is: " + a)
          }
          else
          {
              println("Min is: " + b)
          }
       }
       maxValue();
       minValue();
    }
}

Producción 
 

Min and Max from 5, 7
Max is: 7
Min is: 5

En el código anterior, maxAndMin es una función y maxValue es otra función interna que devuelve el valor máximo entre a y b, de manera similar, minValue es otra función interna que también es una función anidada, esta función devuelve el valor mínimo entre a y b. 
Función anidada múltiple 
Aquí hay una implementación de la función anidada múltiple. 
Ejemplo 
 

Scala

// Scala program of Multiple Nested Function
object MaxAndMin
{
    // Main method
    def main(args: Array[String])
    {
        fun();
    }
     
    // Function
    def fun() = {
         
        geeks();
         
        // First Nested Function
        def geeks() = {
            println("geeks");
             
            gfg();
             
            // Second Nested Function
            def gfg() = {
                println("gfg");
 
                geeksforgeeks();
 
                // Third Nested Function
                def geeksforgeeks() = {
                    println("geeksforgeeks");
                }
            }
        }
    }
}

Producción 
 

geeks
gfg
geeksforgeeks

En el código anterior, fun es una función y geeks, gfg, geeksforgeeks son funciones anidadas o funciones locales.
 

Publicación traducida automáticamente

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