MST

星途 面试题库

面试题:Rust控制台程序中复杂用户交互逻辑实现

设计一个Rust控制台程序,实现一个简易的命令行计算器。支持基本的四则运算(加、减、乘、除),用户通过命令行输入类似“add 5 3”这样的指令进行运算,程序输出运算结果。要考虑如何解析用户输入,处理非法指令以及运算错误(如除数为零)。
31.1万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
use std::env;

fn main() {
    let args: Vec<String> = env::args().collect();

    if args.len() != 4 {
        eprintln!("Usage: <operation> <num1> <num2>");
        return;
    }

    let operation = &args[1];
    let num1: f64 = match args[2].parse() {
        Ok(num) => num,
        Err(_) => {
            eprintln!("Invalid number: {}", args[2]);
            return;
        }
    };
    let num2: f64 = match args[3].parse() {
        Ok(num) => num,
        Err(_) => {
            eprintln!("Invalid number: {}", args[3]);
            return;
        }
    };

    let result = match operation {
        "add" => num1 + num2,
        "sub" => num1 - num2,
        "mul" => num1 * num2,
        "div" => {
            if num2 == 0.0 {
                eprintln!("Division by zero is not allowed.");
                return;
            }
            num1 / num2
        }
        _ => {
            eprintln!("Unknown operation: {}", operation);
            return;
        }
    };

    println!("Result: {}", result);
}