ฟังก์ชั่นที่ซ้อนกัน Scala
สิ่งที่ฉันสามารถกำหนดฟังก์ชั่นใน Scala ฟังก์ชั่นการทำงานที่กำหนดไว้ภายในฟังก์ชั่นที่เรียกว่าฟังก์ชั่นท้องถิ่น
ตัวอย่างต่อไปนี้เราตระหนักถึงการดำเนินงานแฟกทอและการใช้ฟังก์ชั่นในตัว:
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) } }
การดำเนินงานของโค้ดข้างต้นผลลัพธ์คือ:
$ scalac Test.scala $ scala Test 1 1 2 6