是的,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)
的结果,这是递归调用。