Comment comparer String avec des littéraux de chaîne dans match en Rust ?
Bonjour, collègues !
J'ai récemment commencé à apprendre Rust et j'ai rencontré un problème avec l'utilisation de la construction `match` avec des chaînes. J'ai une variable de type `String`, et je veux la comparer avec plusieurs littéraux de chaîne. Voici mon code :
```rust
fn main() {
let user_input = String::from("start");
match user_input {
"start" => println!("Запуск..."),
"stop" => println!("Остановка..."),
"help" => println!("Помощь..."),
_ => println!("Неизвестная команда"),
}
}
```
Le compilateur génère une erreur : `expected struct String, found &str`. Je comprends que `String` et `&str` sont des types différents en Rust, mais comment organiser correctement la correspondance ? J'ai essayé de convertir `user_input` en `&str` via `as_str()`, mais alors il se plaint que les littéraux doivent aussi être `String`. Cela devient un cercle vicieux.
Veuillez me conseiller sur la meilleure façon de résoudre ce problème ? J'ai besoin que le code soit efficace et idiomatique pour Rust. Merci d'avance.