MST

星途 面试题库

面试题:Rust if表达式在复杂控制流场景下的优化应用

有一个Rust程序,它需要根据用户输入的字符串来决定执行不同的操作。如果字符串是"start",则启动一个模拟的任务(打印"任务启动");如果是"stop",则停止这个模拟任务(打印"任务停止");如果是"status",则打印当前任务状态(假设当前状态用一个布尔变量`is_running`表示,打印"任务正在运行"或"任务已停止")。在性能优化的前提下,使用if表达式完成这个控制流逻辑,且代码结构要清晰易读。请写出完整代码及解释优化思路。
41.4万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
fn main() {
    let input = String::from("start"); // 这里假设用户输入为start,实际应用中需从标准输入读取
    let mut is_running = false;

    if input == "start" {
        is_running = true;
        println!("任务启动");
    } else if input == "stop" {
        is_running = false;
        println!("任务停止");
    } else if input == "status" {
        if is_running {
            println!("任务正在运行");
        } else {
            println!("任务已停止");
        }
    }
}

优化思路

  1. 简单的条件判断:使用if - else if语句进行字符串匹配,这种结构简单直接,容易理解,符合清晰易读的要求。对于字符串比较,Rust中的==操作符对于String类型是高效的,因为它利用了字符串的内部表示来快速判断相等性。
  2. 避免不必要的计算:整个逻辑中没有复杂的嵌套或重复计算,在性能优化的前提下,每个条件分支都直接执行相应操作,没有额外的冗余计算,使得程序在处理用户输入时能够高效运行。例如,当匹配到start时,直接修改is_running并打印信息,没有多余的中间步骤。