溫馨提示×

Scala尾遞歸優化怎么實現

小億
94
2024-04-20 12:15:06
欄目: 編程語言

Scala 并沒有內置的尾遞歸優化,但可以通過使用 @tailrec 注解來實現尾遞歸優化。@tailrec 注解會讓編譯器檢查方法是否真正是尾遞歸,并在不是尾遞歸的情況下報錯。

以下是一個使用 @tailrec 注解實現尾遞歸優化的示例代碼:

import scala.annotation.tailrec

object TailRecursionExample {

  def factorial(n: Int): Int = {
    @tailrec
    def factorialHelper(n: Int, acc: Int): Int = {
      if (n <= 1) acc
      else factorialHelper(n - 1, n * acc)
    }

    factorialHelper(n, 1)
  }

  def main(args: Array[String]): Unit = {
    println(factorial(5)) // 輸出 120
  }

}

在這個示例中,factorialHelper 方法是一個尾遞歸函數,它接受兩個參數 nacc,并在遞歸調用時傳入更新后的參數。使用 @tailrec 注解標記這個方法,確保編譯器進行尾遞歸優化。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女