MST
星途 面试题库

面试题:Rust函数定义中如何处理可变参数

在Rust中,假设你要定义一个函数,该函数可以接受任意数量的整数参数,并计算这些参数的总和。请写出该函数的定义及实现过程,同时说明如何在调用该函数时传递可变数量的参数。
14.1万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
fn sum_numbers(nums: &[i32]) -> i32 {
    nums.iter().sum()
}

fn main() {
    let numbers = vec![1, 2, 3, 4, 5];
    let result = sum_numbers(&numbers);
    println!("Sum: {}", result);

    // 也可以直接传递数组字面量
    let result2 = sum_numbers(&[10, 20, 30]);
    println!("Sum2: {}", result2);
}

在上述代码中:

  1. 函数定义sum_numbers 函数接受一个 &[i32] 类型的参数,这是一个切片,它可以表示任意长度的 i32 数组。函数内部使用 iter().sum() 方法计算切片中所有元素的总和。
  2. 调用函数传递可变数量参数
    • 可以先创建一个 Vec<i32> 向量,然后将其借用为切片传递给函数,如 sum_numbers(&numbers)
    • 也可以直接传递数组字面量,如 sum_numbers(&[10, 20, 30]),数组字面量会自动被转换为切片。