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