如何在Rust的match中将String与字符串字面量进行比较?
各位同仁,大家好!
我最近开始学习Rust,在使用`match`结构处理字符串时遇到了问题。我有一个`String`类型的变量,想将其与几个字符串字面量进行比较。以下是我的代码:
```rust
fn main() {
let user_input = String::from("start");
match user_input {
"start" => println!("启动..."),
"stop" => println!("停止..."),
"help" => println!("帮助..."),
_ => println!("未知命令"),
}
}
```
编译器报错:`expected struct String, found &str`。我明白`String`和`&str`在Rust中是不同类型,但如何正确地进行模式匹配呢?我尝试过通过`as_str()`将`user_input`转换为`&str`,但这样又要求字面量也必须是`String`。这似乎成了一个死循环。
请问如何优雅地解决这个问题?我希望代码既高效又符合Rust的惯用写法。提前感谢!