rokevin
移动
前端
语言
  • 基础

    • Linux
    • 实施
    • 版本构建
  • 应用

    • WEB服务器
    • 数据库
  • 资讯

    • 工具
    • 部署
开放平台
产品设计
  • 人工智能
  • 云计算
计算机
其它
GitHub
移动
前端
语言
  • 基础

    • Linux
    • 实施
    • 版本构建
  • 应用

    • WEB服务器
    • 数据库
  • 资讯

    • 工具
    • 部署
开放平台
产品设计
  • 人工智能
  • 云计算
计算机
其它
GitHub
  • 尾递归函数

  • 6.4 尾递归函数

尾递归函数

6.4 尾递归函数

  • 核心定义:用tailrec关键字修饰,满足「尾递归」条件的函数(函数最后一步是调用自身),编译器会将其优化为循环,避免栈溢出;

  • 使用场景:递归深度大的场景(如阶乘、斐波那契数列、树形遍历);

  • 示例:

    // 尾递归阶乘(避免栈溢出)
    tailrec fun factorial(n: Int, accumulator: Int = 1): Int {
        if (n <= 1) return accumulator
        return factorial(n - 1, n * accumulator) // 最后一步是调用自身
    }
    
    fun main() {
        println(factorial(5)) // 120
    }
    
最近更新:: 2026/4/2 20:07
Contributors: luokaiwen