Latest web development tutorials

Scala funzioni nidificate

funzione Scala funzione Scala

Quello che posso definire una funzione in funzione funzioni definite Scala all'interno di una funzione chiamata funzioni locali.

Gli esempi che seguono ci rendiamo conto operazione fattoriale, e utilizzare le funzioni built-in:

object Test {
   def main(args: Array[String]) {
      println( factorial(0) )
      println( factorial(1) )
      println( factorial(2) )
      println( factorial(3) )
   }

   def factorial(i: Int): Int = {
      def fact(i: Int, accumulator: Int): Int = {
         if (i <= 1)
            accumulator
         else
            fact(i - 1, i * accumulator)
      }
      fact(i, 1)
   }
}

L'attuazione del codice di cui sopra, l'output è:

$ scalac Test.scala
$ scala Test
1
1
2
6

funzione Scala funzione Scala