Avatar ·

Comment faire correspondre une String avec des littéraux de chaîne en Rust via match ?

Bonjour à tous ! Je viens de commencer à apprendre Rust et j'ai rencontré un problème en utilisant match pour comparer une String. J'ai une variable de type String, et je veux vérifier si elle est égale à un littéral de chaîne. Par exemple, j'écris un analyseur de commandes simple : ```rust fn main() { let command = String::from("start"); match command { "start" => println!("Démarrage !"), "stop" => println!("Arrêt !"), _ => println!("Commande inconnue"), } } ``` Mais le compilateur donne une erreur : ``` error[E0308]: mismatched types expected struct `String`, found `&str` ``` Je comprends que String et &str sont des types différents, mais comment écrire correctement le match ? J'ai essayé d'utiliser as_str(), mais je ne suis pas sûr que ce soit la meilleure méthode. J'ai aussi entendu dire qu'on pouvait convertir les littéraux en String, mais cela semble inefficace. Pouvez-vous m'indiquer comment faire correspondre correctement une String avec des littéraux de chaîne en Rust ? Existe-t-il une manière idiomatique ou des meilleures pratiques ? Merci !