递归函数的定义

107 阅读1分钟

在 Scala 中,递归函数(Recursive Function)  是指在函数体内调用自身的函数。它是解决具有递归结构问题(如阶乘、斐波那契数列、树遍历等)的重要方式。递归函数的核心是 “将大问题分解为与原问题结构相同的小问题”,并通过终止条件避免无限递归。

基本定义

递归函数的定义必须包含两个关键部分:

  1. 终止条件(Base Case) :当问题规模缩小到某个程度时,直接返回结果,不再递归调用,避免无限循环。
  2. 递归步骤(Recursive Step) :将原问题分解为更小的子问题,调用自身解决子问题,并通过子问题的结果构建原问题的解。

语法形式

def 函数名(参数: 类型): 返回类型 = {
  if (终止条件) {
    终止条件的返回值  // 不再递归
  } else {
    // 递归调用自身(参数通常是更小的规模),并处理结果
    函数名(更小的参数) 或 基于子问题结果的计算
  }
}