Avatar ·

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.