📜  斯卡拉 |嵌套函数

📅  最后修改于: 2022-05-13 01:55:41.808000             🧑  作者: Mango

斯卡拉 |嵌套函数

另一个函数中的函数定义称为嵌套函数。 C++、 Java等不支持。在其他语言中,我们可以在函数内部调用函数,但它不是嵌套函数。在 Scala 中,我们可以在函数内部定义函数,而在其他函数内部定义的函数称为嵌套函数或局部函数
句法:


单嵌套函数
这是一个单嵌套函数的示例,它以两个数字作为参数并返回它们的最大值和最小值。
例子

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();
    }
}


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");
                }
            }
        }
    }
}


输出

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

在上面的代码中,maxAndMin 是一个函数,maxValue 是另一个内部函数,返回 a 和 b 之间的最大值,类似地 minValue 是另一个内部函数,也是嵌套函数,该函数返回 a 和 b 之间的最小值。
多重嵌套函数
这是多个嵌套函数的实现。
例子

斯卡拉

// 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");
                }
            }
        }
    }
}

输出

geeks
gfg
geeksforgeeks

在上面的代码中,fun 是一个函数,而 geeks、gfg、geeksforgeeks 是嵌套函数或局部函数。