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