Scala中的嵌套函数 用法和示例

Scala中的嵌套函数

嵌套函数被定义为其另一函数的定义中定义的功能。诸如c,java等编程语言不支持嵌套函数,而Scala则支持。

在Scala中,函数的嵌套是可能的,并且在父函数的定义内可以调用多个函数定义。在另一个函数的定义中定义函数的概念称为嵌套。像任何其他代码块一样,嵌套函数也可以用于在函数内部定义多个代码定义。

嵌套函数可以更容易地检测代码和增加模块化。在另一个函数中声明函数并在特定条件下稍后使用时,将使其更清楚地用于进一步开发和重新设计代码。

语法:

    def function1(){
	    //功能1的代码块
	    def function2(){
	        //功能2的代码块
        }
    }

语法说明:

该语法用于在Scala中定义嵌套函数。这两个功能的定义都是标准的。但是功能2是在功能1的代码内定义的。仅在第一个内部调用。

示例

object MyClass {
      def factorial(x: Int): Int = {
           def fact(x: Int, accumulator: Int): Int = {
                if (x <= 1) accumulator
                else fact(x - 1, x * accumulator)
            }  
            fact(x, 1)
        }
      def main(args: Array[String]) {
         println("10的阶乘是 " + factorial(10));
         println("5的阶乘是 " + factorial(5));
      }
   }

Scala中嵌套方法的代码

输出结果

10的阶乘是 3628800
5的阶乘是 120

代码说明:

上面的代码是查找给定数字的阶乘。它使用嵌套函数,即在函数fact()定义内声明的factorial()函数。