在 Scala 中,递归函数(Recursive Function) 是指在函数体内调用自身的函数。它是解决具有递归结构问题(如阶乘、斐波那契数列、树遍历等)的重要方式。递归函数的核心是 “将大问题分解为与原问题结构相同的小问题”,并通过终止条件避免无限递归。
基本定义
递归函数的定义必须包含两个关键部分:
- 终止条件(Base Case) :当问题规模缩小到某个程度时,直接返回结果,不再递归调用,避免无限循环。
- 递归步骤(Recursive Step) :将原问题分解为更小的子问题,调用自身解决子问题,并通过子问题的结果构建原问题的解。
语法形式
def 函数名(参数: 类型): 返回类型 = {
if (终止条件) {
终止条件的返回值 // 不再递归
} else {
// 递归调用自身(参数通常是更小的规模),并处理结果
函数名(更小的参数) 或 基于子问题结果的计算
}
}