MST

星途 面试题库

面试题:Rust中如何在控制台程序中使用可变参数实现简单的加法运算

在Rust的控制台程序里,编写一个函数,它接受可变数量的整数参数,并返回这些参数相加的结果。请阐述实现思路并给出具体代码。
47.6万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试

实现思路

  1. 在Rust中,可以使用切片(&[i32])来接收可变数量的参数。因为控制台程序一般通过命令行参数获取输入,这些参数会以字符串形式传递进来,需要先将其转换为整数类型。
  2. 遍历切片中的每个整数,将它们累加起来,最后返回累加的结果。

具体代码

fn sum_numbers(numbers: &[i32]) -> i32 {
    let mut sum = 0;
    for number in numbers {
        sum += number;
    }
    sum
}

fn main() {
    let args: Vec<String> = std::env::args().collect();
    let mut numbers: Vec<i32> = Vec::new();
    for arg in args.iter().skip(1) {
        match arg.parse::<i32>() {
            Ok(num) => numbers.push(num),
            Err(_) => println!("Invalid number: {}", arg),
        }
    }
    let result = sum_numbers(&numbers);
    println!("The sum is: {}", result);
}

在上述代码中:

  1. sum_numbers函数接受一个整数切片&[i32]作为参数,遍历切片并累加所有元素,返回累加结果。
  2. main函数中,通过std::env::args()获取命令行参数,跳过第一个参数(程序名本身),尝试将剩余参数解析为i32类型。如果解析成功则加入numbers向量,失败则打印错误信息。最后调用sum_numbers函数并打印结果。