温馨提示×

rust函数能进行递归调用吗

小樊
81
2024-12-03 21:53:30
栏目: 编程语言

是的,Rust 函数可以进行递归调用。递归调用是指在函数内部调用自身的过程。在 Rust 中,递归调用需要有一个明确的终止条件,否则会导致无限递归,从而引发栈溢出错误。

以下是一个简单的 Rust 递归函数示例,用于计算阶乘:

fn factorial(n: u64) -> u64 {
    if n == 0 {
        1
    } else {
        n * factorial(n - 1)
    }
}

fn main() {
    let num = 5;
    println!("The factorial of {} is {}", num, factorial(num));
}

在这个示例中,factorial 函数接受一个 u64 类型的参数 n,并返回一个 u64 类型的结果。函数首先检查 n 是否为 0,如果是,则返回 1(递归终止条件)。否则,函数返回 n 乘以 factorial(n - 1) 的结果,这是递归调用。

0